Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 01:18 06.11.25 
Клубове / Общества / Професионални / Инженери Пълен преглед*
Информация за клуба
Тема Re: подреждане на лопатки [re: Sargon lll]
Авторned (Нерегистриран) 
Публикувано28.09.08 13:12  



Поздравления за инициятивата. За съжаление при програмирането няма такова нещо като "утвърдена методика". Една програма може да бъде написана по много различни начини - по-добри или по-лоши. Методиката идва от уменията на програмиста и задълбоченото му познаване на алгоритмичната теория и математиката. Всъщност методиката, която търсиш е някой да е написал вече подобна програма. Иначе добра книжка е например “Алгоритми + Структури от данни = Програми” - Н. Уирт -това е от автора на езика "Паскал".
Понеже, явно си решил да си напишеш сам програмата ще продължа още малко разсъжденията си от снощи. И все пак нека видим колко са аджеба възможните положения на лопатките? Казахме, че:
1 пермутаците на n елемента са n!, но
2 можем да използваме ротация и симетрия и то циклично

Да видим колко ни помага това (обяснявам просто и подробно):

При даден вариант ротацията можем да приложим циклично n пъти докато се върнем в първоначалното положение, а симетрията само веднъж, защото при повторна симетрия се връщаме в първоначалното положение. Всички еквивалентни варианти (вкл. изходния) можем да изчерпим чрез n ротации, обръщане и още n ротации - т.е. това прави 2n. Ако разпишем всички пермутации и започнем да маркираме еквивалентните такива, то след X маркирания остатъка ще е T = n! - x*2*n. Процесът може да продължи докато не остане нищо за маркиране, т.е. T = 0. Оттам n! - x*2*n = 0, следователно

броя РАЗЛИЧНИ варианти е x = n!/(2n) или x = (n-1)!/2 вместо n!.
Да видим как се отразява това при брой:

n n! (n-1)!/2
1 1 1
2 2 1
3 6 1
4 24 3
5 120 12
6 720 60
7 5040 360
8 40320 2520
9 362880 20160
10 3628800 181440

Интересно, е че до три лопатки няма значение как са разположени, което и в действителност е така. Въпреки направеното подобрение броя варианти пак нараства бързо, но все пак вече може да смятаме с до десетина лопатки без да чакаме много.

Въпроси и отговори:

Може ли да не разписваме всички варианти и да ги елиминираме, а да генерираме направо уникалните - ДА можем! Как - не казвам.
Може ли да подобрим допълнително нещата - ДА можем:
Например ако две лопатки са с еднакви или много близки тегла има ли смисъл да ги разменяме - НЕ.
Има ли смисъл да подредим най-тежките лопатки от едната страна, а най-леките от другата - НЕ.
Може ли да организираме алгоритъма, така че да елиминираме неблагонадеждните кандидати, но без да пропуснем решението - ДА.
Има ли и други хитрости - ДА.
Както ти казах в първия постинг ми е по-лесно направо да поразпиша програмката вместо в няколко десетки постинга да обяснявам как става това - сложно е и губи време, а имам и работа.

Толкоз от мен, успехи!



Цялата тема
ТемаАвторПубликувано
* подреждане на лопатки Sargon lll   20.09.08 12:29
. * Re: подреждане на лопатки the_cursed   20.09.08 21:27
. * Re: подреждане на лопатки Sargon lll   21.09.08 15:39
. * Re: подреждане на лопатки Caмия Инжинep   21.09.08 00:41
. * Re: подреждане на лопатки Sargon lll   21.09.08 15:41
. * Re: подреждане на лопатки Caмия Инжинep   22.09.08 17:37
. * Re: подреждане на лопатки Диaн   21.09.08 18:03
. * Re: подреждане на лопатки Sargon lll   22.09.08 07:58
. * Механика 1..... Диaн   23.09.08 00:38
. * Re: Механика 1..... Sargon lll   23.09.08 07:21
. * Re: Механика 1..... Диaн   23.09.08 07:58
. * Re: Механика 1..... Sargon lll   23.09.08 17:29
. * Re: Механика 1..... Диaн   23.09.08 18:17
. * Re: Механика 1..... Sargon lll   23.09.08 22:05
. * Re: Механика 1..... Диaн   24.09.08 12:44
. * Re: Механика 1..... Sargon lll   24.09.08 18:16
. * Re: подреждане на лопатки _Mepakлия_   23.09.08 13:28
. * Re: подреждане на лопатки Sargon lll   23.09.08 17:33
. * Re: подреждане на лопатки F(x)+C   22.09.08 02:34
. * Re: подреждане на лопатки Sargon lll   22.09.08 08:04
. * Re: подреждане на лопатки F(x)+C   22.09.08 14:16
. * Re: подреждане на лопатки Sargon lll   22.09.08 14:53
. * Re: подреждане на лопатки LRN   22.09.08 16:53
. * Re: подреждане на лопатки Sargon lll   22.09.08 21:07
. * Re: подреждане на лопатки Gofy   23.09.08 11:48
. * Re: подреждане на лопатки Sargon lll   23.09.08 17:35
. * Бах маа му! Xoлдън   24.09.08 17:38
. * Re: Бах маа му! Диaн   24.09.08 17:57
. * Re: Бах маа му! Xoлдън   24.09.08 18:17
. * Re: Бах маа му! Sargon lll   24.09.08 18:15
. * Re: Това е задача за програмисти ned   24.09.08 21:07
. * Re: Това е задача за програмисти Sargon lll   24.09.08 23:41
. * Re: Това е задача за програмисти mnankov   25.09.08 06:56
. * Re: Това е задача за програмисти Sargon lll   25.09.08 08:45
. * Re: Това е задача за програмисти P. - koвaчa   26.09.08 21:28
. * Re: Това е задача за програмисти Sargon lll   28.09.08 11:17
. * Re: Това е задача за програмисти ned   27.09.08 22:48
. * Re: Това е задача за програмисти Sargon lll   28.09.08 11:15
. * Re: Това е задача за програмисти wiz   28.09.08 16:21
. * Re: Това е задача за програмисти LRN   29.09.08 08:40
. * Re: подреждане на лопатки ned   28.09.08 13:12
. * Re: подреждане на лопатки wiz   28.09.08 16:11
. * Re: подреждане на лопатки mnankov   29.09.08 13:21
. * Re: подреждане на лопатки Boждa   30.09.08 11:13
. * Re: подреждане на лопатки ned   30.09.08 17:07
. * Re: подреждане на лопатки mnankov   02.10.08 12:46
. * Re: подреждане на лопатки ned   02.10.08 15:57
. * Re: подреждане на лопатки mnankov   02.10.08 23:13
. * Re: подреждане на лопатки Бaтko   10.10.08 09:38
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2025 Dir.bg Всички права запазени.