Я пишу несколько статей, предназначенных для обучения начинающим концепциям программирования с помощью связанных с покером тем. В настоящее время я работаю над перетасовкой.
Как Джефф Этвуд указывает на CodingHorror.com, один простой метод перетасовки (итерация через массив и замена каждой карты случайной карточкой в другом месте массива) создает неравномерное распределение перестановок. В реальном приложении я просто использовал бы Knuth Fisher-Yates shuffle для более равномерной случайности. Но я не хочу увязывать объяснение концепций программирования с гораздо менее удобным для кодирования алгоритмом.
Это приводит к вопросу: насколько большая часть преимуществ имела бы "черная шляпа", если бы они знали, что вы использовали наивное тасование колоды с 52 карточками? Похоже, это было бы бесконечно мало.