Подключиться через MCP →

Введите расчет

Масти в колоде
Ранги в колоде

Математическая формула

Математическая формула: Генератор случайных игральных карт
Show calculation steps (1)
  1. Fisher-Yates shuffle (without replacement)

    Fisher-Yates shuffle (without replacement): Генератор случайных игральных карт

    For k from N-1 down to 1, choose j uniformly and swap, producing an unbiased random permutation; take the first numSamples cards.

Реклама

Результатов

Вытянуто карт
2
from a deck of 52 cards
Eight of Spades
Six of Spades
Размер колоды 52 cards
Вытянутые карты Eight of Spades, Six of Spades

Что делает этот инструмент

Генератор случайных игральных карт вытягивает одну или несколько карт из виртуальной, только что перетасованной стандартной колоды. Вы сами решаете, сколько карт тянуть, какой будет колода и возвращается ли каждая вытянутая карта обратно (с возвратом) или откладывается в сторону (без возврата). Это удобно для карточных игр, школьных уроков по теории вероятностей, фокусов, принятия решений и любых ситуаций, где нужна честная и беспристрастная случайная карта.

Стандартная колода из 52 карт по мастям и достоинствам с двумя джокерами
Стандартная колода: 13 достоинств в четырёх мастях, плюс джокеры по желанию.

Как пользоваться

Укажите, сколько карт нужно вытянуть, выберите режим и задайте, сколько карт показывать в одном ряду. В разделе «Настройки колоды» можно включать и отключать отдельные масти (трефы, бубны, червы, пики) и ранги (от двойки до туза), а также добавить 0, 1 или 2 джокера. Рабочая колода — это все пары «ранг + масть», у которых отмечены оба флажка, плюс джокеры, если они есть. По умолчанию используется полная колода из 52 карт.

Как работает формула

Колода — это список из \(N\) карт. Чтобы вытянуть одну карту, мы вычисляем равномерно распределённый случайный индекс

$$i = \lfloor \text{random()} \times N \rfloor$$

где random() возвращает действительное число из диапазона [0, 1). В режиме «С возвратом» каждое вытягивание не зависит от предыдущих и идёт из полной колоды, поэтому одна и та же карта может выпасть несколько раз. В режиме «Без возврата» выполняется перетасовка Фишера–Йетса: для \(k\) от \(N-1\) до 1 мы выбираем

$$j = \lfloor \text{random()} \times (k+1) \rfloor,\quad D[k] \leftrightarrow D[j]$$

и меняем местами позиции \(k\) и \(j\), после чего берём первые карты — это гарантирует отсутствие дубликатов.

Реклама
Случайное значение от 0 до 1, отображённое на индекс в массиве карт
Случайная дробь, умноженная на размер колоды \(N\), задаёт индекс карты.

Разбор примера

Возьмём колоду по умолчанию из 52 карт и вытянем 2 карты в режиме «С возвратом». Допустим, random() возвращает 0,0769, а затем 0,6442. Индекс первой карты

$$\lfloor 0{,}0769 \times 52 \rfloor = 3$$

индекс второй карты

$$\lfloor 0{,}6442 \times 52 \rfloor = 33$$

В результате получается упорядоченная пара карт, например «Пятёрка треф» и «Девятка пик», показанная по две карты в ряду.

Частые вопросы

В чём разница между режимами «С возвратом» и «Без возврата»? «С возвратом» — вытягивание с возвращением карты в колоду (возможны повторы); «Без возврата» — вытягивание без возвращения (все карты разные, как при раздаче руки).

Можно ли вытянуть больше карт, чем есть в колоде? Только в режиме «С возвратом». В режиме «Без возврата» количество ограничено размером колоды, ведь нельзя раздать больше уникальных карт, чем их существует.

Как обрабатываются джокеры? У джокера нет масти, и он просто называется «Джокер». При двух джокерах в режиме «Без возврата» они считаются двумя разными вытягиваниями, хотя и носят одно имя.

Последнее обновление: