Комбинаторные алгоритмы

Посоветуйте статью по сабжу c реализацией для n-предметов в m-ячеек (желательно на python)

P.S. Хочу сделать список колор-кодов для пререндера набора текстур для кубиков, то есть код где 1 — красный, 2 — желтый и 3-зеленый, а финальный код выглядит примерно так: «122311».

P.S.S. Правильно ли я посчитал? Что если 6 ячеек (6 граней) и 3 цвета, то в финале 216 комбинаций (6^3)
  • Вопрос задан
  • 5346 просмотров
Решения вопроса 1
@Ano
Вложенные циклы, конечно, эквивалентны, но на python идеологически правильным будет

import itertools

itertools.product( ('1', '2', '3'), repeat=6)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 5
difiso
@difiso
В параллельной вселенной я космонавт
Относительно PPS. Посчитали вы не правильно. Количество таких комбинаций 3^6 = 729 — троичная система счисления с шестью позициями.

Если говорить только про кубики, то не 729, а меньше, потому как одни комбинации могут получаться из других путем простого поворота.
Ответ написан
AmdY
@AmdY
PHP и прочие вебштучки
неправильно. нужно систему исчислении (3 цвета) возводить в степень разрядности (6 ячеек). запомнить легко, если сравнивать со знакомой десятичной системой. система 10 разрядов 3, соответственно вариантов 1000.

в вашем варианте можно тупо сделать три цикла и не «заморачиваться» алгоритмом перестановок.
Ответ написан
Комментировать
@lecter
Ответ написан
Комментировать
@vilgeforce
Раздолбай и программист
Если нужен полный перебор — тут хороший алгоритм описан www.wasm.ru/article.php?article=cycle_pwd
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы