ого варіантів картовий рук можна скласти з 52 карт. p align="justify"> Останній раз застосуємо і закріпимо універсальну формулу:
52 5 = 52!/5! * (52-5)! = 52 * 51 * 50 * 49 * 48/5 * 4 * 3 * 2 * 1 = 2598960
Всього варіантів картовий рук 2598960
Разом, ймовірність приходу Роял-Флеш 4/2598960 = 0,00000154 (У відсотках 0,000154)
Аналогічно рахуємо для решти комбінацій
Ймовірності освіти комбінацій з роздачі в оазис покері.
Таблиця 1
В
Текст програми
# include
# include
# include
# include namespace std; main ()
{(time (NULL)); deck [52]; i; suitnames [4] = {"spades", "diamonds", "clubs", "hearts"}; ranknames [13] = {"2", "3", "4", "5", "6", "7", "8", "9", "10" , "jack", "queen", "king", "ace"};
// створити колоду, з картами в порядку, але рангу
for (i = 0; i <52; i + +)
{[i] = i;
}
// тасує колоду: (i = 0; i <52; i + +)
{
// генерувати випадкові індекс, щоб замінити карту в індексі i.
int j = rand ()% 52; temp = deck [i]; [i] = deck [j]; [j] = temp;
}
// Отримати звання карт
int R [5];
int S [5]; (i = 0; i <5; i + +)
{[i] = deck [i]% 13; [i] = deck [i]/13;
}
// Сортування масиву R
bool swapped = false;
{= false; (int i = 0; i <5; i + +)
{(R [i]> R [i +1])
{temp = R [i]; [i] = R [i +1]; [i +1] = temp; = true;
}
// перевірка на випадання ідентічних карт в парі
if (R [0] == R [1])
{if (S [0] == S [1])
{S [1] = S [i + +];
}
}; (R [2] == R [1])
{if (S [2] == S [1])
{S [2] = S [i + +];
}
}; (R [3] == R [2])
{if (S [2] == S [3])
{S [3] = S [i + +];
}
}; (R [3] == R [4])
{if (S [3] == S [4])
{S [3] = S [i + +];
}
};