Я хотел бы предложить публике алгоритм карточной игры, исключающий «обман».
Те.
Расклад игры генерируется участниками совместно, а «показ» конкретной карты может осуществляться только одному игроку.
Для простоты алгоритм описан для трех человек, но его легко расширить на любое N> =3. Каждый игрок генерирует три случайные перестановки: A1.3. Произведение A=A3*A2*A1 — это макет игры.
Теперь, если необходимо раскрыть карту с номером i, первый игрок передает A1(i) второму, второй передает A2(A1(i)) = A2*A1(i) третьему, третий публикует А(и)=А3*А2*А1(и).
Если карту нужно раскрыть только третьему игроку – А(i) он не публикует. Третий игрок генерирует случайную перестановку C3 и передает ее первому игроку, а затем второму игроку D3=(C3^(-1))*A3. Теперь, если необходимо раскрыть карту только второму игроку, первый игрок передает A1(i) второму, второй передает D3*A2*A1(i) обратно первому и первый вычисляет C3*D3 *A2*A1(i) = A(i) .
Далее третий игрок генерирует случайную перестановку F3 и передает ее второму игроку, тот передает ее первому игроку G3=A3*F3^(-1).
Теперь, если необходимо раскрыть карту только первому игроку, он передает A1(i) второму, второй передает ему обратно F3*A2*A1(i) и первый вычисляет G3*F3 *A2*A1(i)=A(i).
Перед началом игры каждый игрок публикует для каждой случайной перестановки X хэш числа X+k*n, где 0
-
Проблемы Исследования Ключевых Слов Overture
19 Oct, 24