Страниц: 1 2 3 [4] 5 6 7
  Печать  
Автор Тема: Уникальные перестановки  (Прочитано 34938 раз)
0 Пользователей и 1 Гость смотрят эту тему.

Вот эти 12 перестановок из чисел 1,2,3,4 назовём уникальными в таком смысле: ни в каких двух перестановках в одинаковых позициях нет одинаковой пары чисел:

Код:
1 2 3 4
1 3 4 2
1 4 2 3
2 1 4 3
2 3 1 4
2 4 3 1
3 1 2 4
3 2 4 1
3 4 1 2
4 1 3 2
4 2 1 3
4 3 2 1
Например, в первой перестановке в первой и второй позиции имеем пару чисел 1,2; больше ни в какой престановке в этих позициях нет такой пары чисел.

Задача такая: составить 56 уникальных перестановок из чисел 1,2,3,4,5,6,7,8 (ещё 72 перестановки из чисел 1,2,3,...,9 и 240 перестановок из чисел 1,2,3,...,16).

Вот начала писать перестановки из чисел 1,2,...,8. Первые семь штук:

Код:
1,2,3,4,5,6,7,8
1,3,4,5,6,7,8,2
1,4,5,6,7,8,2,3
1,5,6,7,8,2,3,4
1,6,7,8,2,3,4,5
1,7,8,2,3,4,5,6
1,8,2,3,4,5,6,7

Дальше не знаю, как писать.

По-хорошему, конечно, надо программку написать. Но для 16 чисел, наверное, очень долго работать будет  Sad
Слишком много перестановок. Может быть, тут какая-то хорошая есть закономерность, или хорошая оптимизирующая тупой перебор идея.

Помогите, пожалуйста  Помощь
zhekas
Гений-Говорун
*
Offline Offline

Сообщений: 1035

СПАСИБО
-вы поблагодарили: 34
-вас поблагодарили: 487



Просмотр профиля Email
Ответ #45 : Июнь 11, 2012, 12:09:24 �

для 9 также тупит на 18 строке
Записан
square
Свой человек
***
Offline Offline

Сообщений: 333

СПАСИБО
-вы поблагодарили: 22
-вас поблагодарили: 14



Просмотр профиля Email
Ответ #46 : Июнь 11, 2012, 12:13:18 �

Вот ведь!
Ладно, пожалуйста, пришлите мне программу для n=10. Попробую покрутить, авось получится.
А сама тем временем буду думать над аналогией.

Приглашаю всех подумать вместе со мной Smiley
Записан

//текст доступен после регистрации//
square
Свой человек
***
Offline Offline

Сообщений: 333

СПАСИБО
-вы поблагодарили: 22
-вас поблагодарили: 14



Просмотр профиля Email
Ответ #47 : Июнь 11, 2012, 14:07:51 �

Хорошая головоломка! Я уже всю голову сломала  Smiley



Числа во второй группе (комбинации, начинающиеся с числа 2) я могла расставить неправильно, можно изменить.

Это для аналогии n=8:

Код:
1 1 1 1 1 1 1 1 
1 2 2 2 2 2 2 2
1 3 3 3 3 3 3 3
1 4 4 4 4 4 4 4
1 5 5 5 5 5 5 5
1 6 6 6 6 6 6 6
1 7 7 7 7 7 7 7
1 8 8 8 8 8 8 8
2 1 2 3 4 5 6 7
2 2 1 4 3 6 5 8
2 3 4 1 2 7 8 5
2 4 3 2 1 8 7 6
2 5 6 7 8 1 2 3
2 6 5 8 7 2 1 4
2 7 8 5 6 3 4 1
2 8 7 6 5 4 3 2

Неужели аналогия не пройдёт?  Sad

Да, напомню: должны получиться непересекающиеся комбинации.


Записан

//текст доступен после регистрации//
zhekas
Гений-Говорун
*
Offline Offline

Сообщений: 1035

СПАСИБО
-вы поблагодарили: 34
-вас поблагодарили: 487



Просмотр профиля Email
Ответ #48 : Июнь 11, 2012, 14:35:54 �

Есть задумка попробовать реализовать переход от n до n+1 следующим образом. Взять вторую группу из n=8. В ней прослеживаются две главные диагонали. Это диагональ едениц и диагональ восьмерок.

Взять например диагональ едениц и относительно её раздвинуть треугольники прилегающие к этой диагонали на одну позицию вправо для верхнего треугольника и на одну позицию вниз для нижнего треугольника. При этом числа в треугольниках увеличить на еденицу. А затем искать числа н позициях около этой диагонали

Последнее редактирование: Июнь 11, 2012, 14:40:44 от zhekas Записан
square
Свой человек
***
Offline Offline

Сообщений: 333

СПАСИБО
-вы поблагодарили: 22
-вас поблагодарили: 14



Просмотр профиля Email
Ответ #49 : Июнь 11, 2012, 14:39:46 �

Хорошая задумка! Попробуйте.

У меня уже голова лопается. Вроде всё должно быть аналогично, но не получается никак.
И для n=6 есть, и для n=8 есть.

Ну не может быть, чтобы для n=10 не было!
Записан

//текст доступен после регистрации//
square
Свой человек
***
Offline Offline

Сообщений: 333

СПАСИБО
-вы поблагодарили: 22
-вас поблагодарили: 14



Просмотр профиля Email
Ответ #50 : Июнь 13, 2012, 04:41:38 �

Zhekas
ну что там с десятками? Тоже глухо? Smiley

А что дадут комбинации из чисел 1,2,3,...,12?
Может, тут повезёт... Или тоже сразу программа будет тупить?

Задачка оказалась крепким орешком Smiley

Кстати, вы когда крутили программу для шестёрок, отслеживали появление 32 комбинаций?
Мне бы и 32 комбинации очень сгодились!

Тот вариант, который вы мне прислали, как я понимаю, это отслеживает. То есть он выдаст и 31 комбинацию, если будет найдено 31 штук, и 32 комбинации тоже выдаст. Правильно понимаю?

Я крутила несколько часов с параметром 6. Не выдалось даже ни одного набора из 31 комбинации, так и остался максимум=30.
Записан

//текст доступен после регистрации//
zhekas
Гений-Говорун
*
Offline Offline

Сообщений: 1035

СПАСИБО
-вы поблагодарили: 34
-вас поблагодарили: 487



Просмотр профиля Email
Ответ #51 : Июнь 13, 2012, 06:13:36 �

с 12 тоже глухо. Полный перебор и, соответственно, експоненциальный рост времени неумолимо приводят к ожидаемому результату (отсутствию резултата.)
Записан
square
Свой человек
***
Offline Offline

Сообщений: 333

СПАСИБО
-вы поблагодарили: 22
-вас поблагодарили: 14



Просмотр профиля Email
Ответ #52 : Июнь 13, 2012, 08:39:39 �

Да-а-а... Вот ситуация...

А вот такая идея: воспользоваться случайной генерацией комбинаций.
Берём, например, несколько первых комбинаций, скажем, таких:

1 1 1 1 1 1
1 2 2 2 2 2
1 3 3 3 3 3
1 4 4 4 4 4
1 5 5 5 5 5
1 6 6 6 6 6

Дальше включаем рэндом, генерируем следующую комбинацию, проверяем, если годится, записываем в набор, если не годится, отбрасываем; генерируем следующую комбинацию и т. д.

Можно вообще начать с одной комбинации, любой.
Последнее редактирование: Июнь 13, 2012, 09:24:28 от square Записан

//текст доступен после регистрации//
Smith
Из мудрейших мудрейший
**
Offline Offline

Сообщений: 2950

СПАСИБО
-вы поблагодарили: 286
-вас поблагодарили: 307


PeAcE


Просмотр профиля
Ответ #53 : Июнь 14, 2012, 12:50:56 �

Да-а-а... Вот ситуация...

А вот такая идея: воспользоваться случайной генерацией комбинаций.
Берём, например, несколько первых комбинаций, скажем, таких:

1 1 1 1 1 1
1 2 2 2 2 2
1 3 3 3 3 3
1 4 4 4 4 4
1 5 5 5 5 5
1 6 6 6 6 6

Дальше включаем рэндом, генерируем следующую комбинацию, проверяем, если годится, записываем в набор, если не годится, отбрасываем; генерируем следующую комбинацию и т. д.

Можно вообще начать с одной комбинации, любой.

111111   212345   313624   414263   515432   616253
122222   223456   324135   425314   526543   621364
133333   234561   335246   436425   531654   632415
144444   245612   346351   441536   542165   643526
155555   256123   351462   452641   553216   654631
166666   261234   362513   463152   564321   665142

зы: а что такое рэндом?  Huh? Undecided Да

Эти пользователи сказали вам СПАСИБО :

square

За это сообщение 1 пользователь сказал спасибо!
Записан
Smith
Из мудрейших мудрейший
**
Offline Offline

Сообщений: 2950

СПАСИБО
-вы поблагодарили: 286
-вас поблагодарили: 307


PeAcE


Просмотр профиля
Ответ #54 : Июнь 14, 2012, 13:01:21 �

square, а почему вы решили, что для n=8 всего 56 возможных перестановок на указанных условиях?
 
зы: т.е., может оно и так, но интересно - почему Вы так считаете?
Записан
square
Свой человек
***
Offline Offline

Сообщений: 333

СПАСИБО
-вы поблагодарили: 22
-вас поблагодарили: 14



Просмотр профиля Email
Ответ #55 : Июнь 14, 2012, 13:13:02 �

С 36 комбинациями из чисел 1,2,3,4,5,6 у вас здорово получилось!

А мы с zhekas бились, бились, так ничего и не нашли.

А они у вас точно непересекающиеся? Я ещё не проверила.

Как вы их нашли? Расскажите, пожалуйста, интересно Smiley

Насчёт уникальных перестановок для n=8 всё просто: существует ровно 7 попарно ортогональных ЛК 8-го порядка. Перестановки эти из этих самых квадратов берутся, вот и будет их ровно 56.

А вот непересекающихся комбинаций для n=8 получается ровно 64, zhekas их нашёл.

Ах, да, про рэндом не ответила. Ну, это я на форуме dxdy.ru подцепила, там один товарищ так написал.
Вообще-то это функция такая - случайная величина Smiley

А с десяточками вы тоже можете выдать непересекающиеся комбинации? Мне надо мно-о-о-г-о Smiley Не меньше 90.
Последнее редактирование: Июнь 14, 2012, 13:19:27 от square Записан

//текст доступен после регистрации//
Smith
Из мудрейших мудрейший
**
Offline Offline

Сообщений: 2950

СПАСИБО
-вы поблагодарили: 286
-вас поблагодарили: 307


PeAcE


Просмотр профиля
Ответ #56 : Июнь 14, 2012, 13:18:59 �

я вообще не очень понимаю предмета обсуждения, хотя мне и было интересно повозиться. например, полагаю, что существует несколько (много) различных вариантов сложения 36 из 6. все они уникальны, но нельзя заменить в одном решениии никакое из звеньев на звено из другого решения.

что касается проверки: там первые две значащие цифры вообще не нуждаются в проверке как между собой, так и в сочетании с иными, и это очевидно. в остальном проверка легко осуществляется по принципу создания, например. проверяем 3 и 4 значащие цифры. у нас в первом столбце 11, 2-12, 3-13, 4-14,5-15,6-16. аналогично везде и все вплоть до 66.
Последнее редактирование: Июнь 14, 2012, 13:20:41 от Wesson Записан
square
Свой человек
***
Offline Offline

Сообщений: 333

СПАСИБО
-вы поблагодарили: 22
-вас поблагодарили: 14



Просмотр профиля Email
Ответ #57 : Июнь 14, 2012, 13:23:37 �

А что именно вы не понимаете? Есть задача:

а) для уникальных перестановок;
б) для непересекающихся комбинаций.

Вот и решаем. У меня, например, это плохо получается Smiley
Ну, с уникальными перестановками кое-как разобралась.

А вот с непересекающимися комбинациями никак не разберусь.
Из "десяточек" (т.е. из чисел 1,2,3,...10) нашла всего 19 непересекающихся комбинаций. И дальше ни тпру, ни ну Smiley

Так значит, говорите, что "шестёрки" у вас не пересекаются? Сейчас проверим...
Записан

//текст доступен после регистрации//
Smith
Из мудрейших мудрейший
**
Offline Offline

Сообщений: 2950

СПАСИБО
-вы поблагодарили: 286
-вас поблагодарили: 307


PeAcE


Просмотр профиля
Ответ #58 : Июнь 14, 2012, 13:25:13 �

другое дело - как доказать, что 36 - максимально возможное решение? вариант с квадратами предлагает способ решения для некоторых "квадратно" устроенных n. доказательства максимальности я пока не встречал. имхо, понимая природу "максимальности" можно вывести универсальную формулу для определения максимального количества вариантов перестановок.
другой интересный аспект (полагаю тесносвязаный с первым) - это возможное количество вариантов перестановок 36 из 6.
Последнее редактирование: Июнь 14, 2012, 13:27:39 от Wesson Записан
square
Свой человек
***
Offline Offline

Сообщений: 333

СПАСИБО
-вы поблагодарили: 22
-вас поблагодарили: 14



Просмотр профиля Email
Ответ #59 : Июнь 14, 2012, 13:30:15 �

Я ушла проверять ваше решение Smiley

Да, вы ничего не сказали о "десяточках".
Записан

//текст доступен после регистрации//
Страниц: 1 2 3 [4] 5 6 7
  Печать  
 
Перейти в: