|
|
| Тема |
Re: Това е задача за програмисти [re: Sargon lll] |
|
| Автор | ned (Нерегистриран) | |
| Публикувано | 27.09.08 22:48 |
|
|
|
Приятели в случая говорим за пермутации на n числа, а не за комбинации. Моето изречение: "броя пермутации на n числа е n!" е вярно - имам и аз бегла представа от мътемътикътъ. например пермутациите на три числа са:
123
132
213
231
312
321
и техния брой е 3! = 1*2*3 = 6.
Наистина обаче не е необходимо да се търсят всичките решения защото в конкретната задача са в сила свойствата ротация и симетрия. Например ако намерим някакво решение и изместим лопатките с една надясно или наляво или ако обърнем реда на подреждане, то ще получим същия краен резултат - т.е.
ако
1234 е решение то решения са и
4123 (ротация)
3412 (пак ротация)
4321 (симетрия)
За даден вариант може да прилагаме ротацията и симетрията толкова пъти, колкото да изчерпим всички еквивалентни варианти. Това е което казах в първия постинг има и допълнителни трикове.
Колега mnakov
"възможните комбинации не са n! !!!!! ако лопатките са напр. 10, тогава комбинациите са всички десет цифрени числа, в които цифрите не се повтарят! напр
1234567890
1234567809
1234567089
1234567098
"
това, което казваш, че това, което казвам не е вярно, съвсем е невярно, съжалявам. Ако искаш разписвай си пермутации и си ги брой да се убедиш ;). Можеш да продължиш с 10, но ти препоръчвам по-малък брой да не си губиш времето.
"програмката се прави на VBA на кое да е офис приложение и върви доста бързо"
благодаря за ценните указания, не се бях сетил. Добре че се намери някой да светне лампата. Истински супер специалист.
Sargon lll - много ми харесва ми начина, по който разсъждаваш и затова искам да ти помогна. С малко хитрост искаш да спестиш доста работа на хората - ето това е ценно.
| |
| |
|
|
|