Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Yan_Shrayber_-_vse_3.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
8.77 Mб
Скачать

Алгоритм №1

Первый алгоритм выглядит следующим образом:

  1. Начните с нетасованной колоды.

  2. Выберите случайную карту из тех, что у вас есть (если колода из 60 карт, выберите псевдослучайное число от 1 до 60). Возьмите карту под этим номером и поменяйте местами с картой № 60. По сути, это значит взять любую карту из колоды и положить её на дно «тасуемой» колоды, закрепив там.

  3. Теперь возьмет случайную карту из оставшихся (от 1 до 59), и поменяйте местами с картой №59, положив поверх предыдущей.

  4. Затем возьмите ещё одну случайную карту из оставшихся (от 1 до 58), поменяйте её местами с картой №58, и так далее.

  5. Продолжайте, пока не дойдёте до карты №1, которая меняется местами сама с собой (то есть не делает ничего), и всё готово.

Этот способ очевидно отличается от всех нормальных способов, которыми люди тасуют карты, но помните, цель – не эмулировать тасование живым человеком, а получить случайный расклад, то есть, случайный порядок карт.

Алгоритм №2

Второй алгоритм похож на первый, но есть два небольших изменения.

  1. Начните с нетасованной колоды.

  2. Выберите случайную карту из тех, что у вас есть (если колода из 60 карт, выберите псевдослучайное число от 1 до 60). Возьмите карту под этим номером и поменяйте местами с картой №60, положив её на дно колоды.

  3. Выберите случайную карту из всех карт, включая те, что уже были выбраны (то есть, выберите ещё одну случайную карту от 1 до 60). Поменяйте местами с картой №59.

  4. Выберите ещё одну случайную карту от 1 до 60 и поменяйте местами с картой №58.

  5. Продолжайте повторять, пока в конце концов не выберете случайную карту от 1 до 60 для обмена с картой №1. Готово.

  6. Ах да, и вот ещё что. Повторите весь процесс (шаги 2-5) пятьдесят раз. Так мы сделаем расклад ещё случайнее.

Подсказки

Как взяться за это, когда в колоде из 60 карт так много различных раскладов, что и не пересчитаешь? Ответ в том, что можно сделать гораздо проще. Представьте колоду всего из трёх карт (все три карты разные, назовите их А, Б, В, если хотите).

Во-первых, вычислите сколькими способами можно расположить колоду из 3 карт. Для этого есть математические хитрости, о которых мы ещё не говорили, но вы должны дойти до этого методом проб и ошибок.

Далее, взгляните на оба алгоритма и вычислите, сколькими способами каждый из алгоритмов может сформировать расклад. То есть, в первом случае выбираете из трёх карт, потому из двух, потом из одной. Во втором случае выбираете из трёх, потом из трёх, потом снова из трёх. Сравните список всех действительно возможных вариантов расклада колоды, то есть уникальных способов расположения карт… и список всех способов, какими можно перетасовать колоду при помощи этих алгоритмов. Вы обнаружите, что один из них даёт случайный порядок (по крайней мере настолько, насколько вообще может быть случайным генератор псевдослучайных чисел), а другой «предпочитает» одни расклады другим. И если это работает для колоды из 3 карт, предположите, что такими же случайными (или неслучайными) будут и бо́льшие колоды. Если хотите проверить математикой большие колоды – на здоровье, но вам не обязательно этого делать.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]