РЕ-БЯ-ТА! НА ФОРУМЕ СТАЛО ЧТО-ТО СКУЧНОВАТО!

Форум пользователей пакета Mathcad

Модератор: Admin

IVAA
Сообщения: 148
Зарегистрирован: Пт ноя 26, 2004 9:38 pm

Сообщение IVAA » Сб фев 19, 2005 8:56 pm

Файлы. Часть2

Изображение

YuK
Сообщения: 698
Зарегистрирован: Вт дек 09, 2003 7:42 pm

Сообщение YuK » Вс фев 20, 2005 12:12 pm

To VIAA
В принципе подход у нас одинаковый - просто я занумеровал вершины дерева и последовательно их
перебираю - уровень за уровнем, чтобы не одной не пропустить, а у вас первый цикл перебирает вершины
первого уровня (один поворот), второй цикл перебирает вершины второго уровня (два поворота) и т.д.
Конечно Вирт и Кнут не оценили бы нашей технологии программирования - но тем не менее результат получен...
10 поворотов действительно дотаточно для матрицы 3*3 - так как 9!<4^10 - кол-во вершин 10 уровня.
Ниже пример, как автоматизировать запись пути в Вашей программе (и в начальной стадии Вашей
программы - наверное можно свернуть все проверки в одну - в одном внутреннем, самом глубоком цикле)

Подобный подход мо

Изображение
Последний раз редактировалось YuK Вс фев 20, 2005 12:18 pm, всего редактировалось 1 раз.

IVAA
Сообщения: 148
Зарегистрирован: Пт ноя 26, 2004 9:38 pm

Сообщение IVAA » Вс фев 20, 2005 8:09 pm

Уважаемый YuK!
Дело в том, что программа у меня работает не совсем корректно.А именно: если для матрицы достаточно, скжем, семь поворотов она всегда выдает большее число поворотов среди которых есть ненужные. Так например может встретиттся последовательность из 4-х поворотов, которая дает единицу т.е. ничего не поворачивает.И это несмотря на то, что в программе после каждого цикла есть оператор (return).Почему так- не понятно!?.Написать можно любые программы, например, с помощью только одгой условной функции.У меня такая программа есть, но там нужно буквально "выуживать" решения.Правда их там более одного, потому что задача имеет не единственное решение.

YuK
Сообщения: 698
Зарегистрирован: Вт дек 09, 2003 7:42 pm

Сообщение YuK » Пн фев 21, 2005 7:33 am

Уважаемый IVAA!

По сути Вы перебираете вектора 10-мерного пространства
(х1,х2,х3...х10), 0<хi<5. Похоже, что у вас крутятся циклы с конца,
как на спидометре автомобиля - на одно изменение первого элемента
отрабатывается 4^9 изменений десятого элемента вектора... а если
искать "минимальный путь", то нужно эти вектора перебирать начиная с
первой компоненты (х1), затем все пары (х1,х2), затем все тройки(х1,х2,х3) и т.д. Видимо поэтому у Вас и появляются по нескольку 1 вначале множества подстановок. В принципе можно ввести в работу еще единичную подстановку е (такую, что еТ=Т), тогда Вам не придется ничего менять в алгоритме - начальный участок посто будет заполнен единичными подстановками их можно отбросить после нахождения решения.

Один из многих, кто активно разрабатывает вопросы конечности алгоритмов, их непротиворечивости - Ершов Ю.Л.(не путать с А.П.) http://math.nsc.ru/conference/malmeet/ershov/

YuK

IVAA
Сообщения: 148
Зарегистрирован: Пт ноя 26, 2004 9:38 pm

Сообщение IVAA » Пн фев 21, 2005 7:53 pm

Уважаемый YuK!
Программа с единичной подстановкой у меня тоже есть, эту идею я использовал, когда писал программу с одним длинным словом.Кстати,десятидлинных слов для решения задачи не достаточно.Оценка 9!<4^10 не проходит т.к. имеются различные слова, представляющие одну и ту же подстановку.Поэтому, если Вы заметили, у меня в программе длина слова равна 12.

VFO
Сообщения: 4227
Зарегистрирован: Ср фев 27, 2002 8:03 pm

Сообщение VFO » Вт фев 22, 2005 6:19 pm

А теперь стало весело?

YuK
Сообщения: 698
Зарегистрирован: Вт дек 09, 2003 7:42 pm

Сообщение YuK » Ср фев 23, 2005 7:33 am

Жить стало лучше, жить стало веселее...

To IVAA Может это просто генетическая память, может предки травили кибернетику и генетику... не пойму какая еще может быть причина?

IVAA
Сообщения: 148
Зарегистрирован: Пт ноя 26, 2004 9:38 pm

Сообщение IVAA » Чт фев 24, 2005 9:19 pm

Уважаемый YuK!
Мне вообщем-то понятно, да, по-видимому, и Вам должно быть все ясно.
Люди в зрелом возрасте (более-менее проницательные) в таких вопросах
ориентируются.Да, по поводу того, что ТхТ^-1=1.Так будет для всех
подстановок, в которых переставляется только два элемента (как в Вашем примере) т.к. в этом случае подстановка является обратной самой себе.

Chernykh_IL
Сообщения: 60
Зарегистрирован: Чт фев 02, 2006 11:55 am

Сообщение Chernykh_IL » Вт фев 14, 2006 3:28 pm

2 VFO:
Вы писали по поводу функции Range2Vector:
<<...На "большом" форуме я выложил решение...>>

Где это "на большом форуме"? Где можно увидеть решение?

Спасибо.

Chernykh_IL
Сообщения: 60
Зарегистрирован: Чт фев 02, 2006 11:55 am

Сообщение Chernykh_IL » Пт фев 17, 2006 7:58 am

"- Ты суслика видишь?
- Нет.
- И я - нет.
- А он там есть! "

Видимо также с функцией Range2Vector.

Леонид
Сообщения: 452
Зарегистрирован: Чт фев 20, 2003 3:31 pm
Откуда: Украина
Контактная информация:

Сообщение Леонид » Пт фев 17, 2006 5:45 pm

Chernykh_IL писал(а):2 VFO:
Где это "на большом форуме"? Где можно увидеть решение?

http://collab.mathsoft.com/~Mathcad2000/

VFO
Сообщения: 4227
Зарегистрирован: Ср фев 27, 2002 8:03 pm

Сообщение VFO » Сб фев 18, 2006 1:00 pm

Прблема Range2Vector снята с повестки так:
Не используй в своих расчетах Range Variable. Эта переменная - атавизм тех времен, когда не было в Mathcad программирования.
Другие "не" работы с Mathcad:
- Не меняй значение ORIGIN
- Не меняй значение TOL и др.
Список можно продолжить. И с ним, конечно, можно поспорить.
Спорщикам задача (для усмирения пыла) - определить число элементов в Range Variable.
a:0,...;...
la:=...
la=
На большом форуме эту задачу так и не решили. Хотя решение есть через использование одного "атавистического" оператора Mathcad.

Chernykh_IL
Сообщения: 60
Зарегистрирован: Чт фев 02, 2006 11:55 am

Сообщение Chernykh_IL » Вт фев 21, 2006 11:42 am

Приведенная ссылка не работает.
Попытался сделать сам. В MC-13 работает, в MC-2001i - нет. В промежутке не знаю.
http://www.e1.ru/fun/photo/view_album.p ... 538&page=0

Не очень понятно, почему это атавизм. Вполне удобно, особенно на первом этапе освоения когда программирование еще не изучено.
У меня есть Mathcad-документ стр. на 30 для расчета некоей характеристики, что ж его весь в функцию поместить?

Леонид
Сообщения: 452
Зарегистрирован: Чт фев 20, 2003 3:31 pm
Откуда: Украина
Контактная информация:

Сообщение Леонид » Вт фев 21, 2006 12:33 pm

И в самом деле не работает. Странно... :?

2VFO:
Насчет ORIGIN - это скорее средство избежать путаницы. Если таковой опасности нет ;-), во многих случаях гораздо привычнее, удобнее и нагляднее бывает использование ORIGIN=1.
Другое дело, что желательно менять ORIGIN в программе, а не глобально, дабы избежать несовместимости программ. Впрочем, это я вас уже наверное цитирую... :)

Korobov V I
Сообщения: 1609
Зарегистрирован: Вт янв 21, 2003 5:12 pm

Сообщение Korobov V I » Вт фев 21, 2006 7:09 pm

collab.mathsoft.com уже работает.