Наивный алгоритм выбирает значения n примерно так:
n = rand (3)
n = rand (3)
n = rand (3)
3 ^ 3 возможных комбинации n
1,1,1, 1,1,2 .... 3,3,2 3,3,3 (27 комбинаций) Ответ Лассевка показывает распределение по картам этих комбинаций.
лучший алгоритм делает:
n = rand (3)
n = rand (2)
п! возможные комбинации n
1,1, 1,2, 2,1 2,2 3,1 3,2 (6 комбинаций, все они дают другой результат)
Как уже упоминалось в других ответах, если вы предпримете 27 попыток получить 6 результатов, вы не сможете получить 6 результатов с равномерным распределением, поскольку 27 не делится на 6. Поместите 27 шариков в 6 ведер и неважно, что вы в некоторых ведрах будет больше шариков, чем в других, лучшее, что вы можете сделать, это 4,4,4,5,5,5 шариков для ведер с 1 по 6.
фундаментальная проблема с наивным перемешиванием заключается в том, что слишком много мест выполняется своп, чтобы полностью перемешать 3 карты, вам нужно всего лишь 2 обмена, а второй обмен должен быть только среди первых двух карт, так как у 3-й карты уже было 1/3 шанс быть замененным продолжение обмена карт даст больше шансов, что данная карта будет поменяна, и эти шансы выровняются только до 1/3, 1/3, 1/3, если общее количество комбинаций обмена делится на 6.