В этом примере ниже M = 10 и N = 2, а поскольку M значительно больше, чем 2 ** N, вероятность состоит в том, что каждая возможная комбинация из N логических значений (True, True), (True False), ( False, True), (False, False) в этом примере будут сгенерированы среди выходов M как минимум один раз, как это произошло ниже.
for _ in range(10):
... choice1 = np.random.choice((True, False))
... choice2 = np.random.choice((True, False))
... print(choice1, choice2)
...
False False
False False
True False
True False
True True
False True
True True
True True
True False
False False
Но это не гарантировано. Существует низкая вероятность получения 10 X (False, False) или, альтернативно, 10 X (True, True) или, возможно, микса, в котором одна конкретная пара, скажем (False, True), никогда не появляется.
In «в реальной жизни» отпечаток заменяется инструкцией о доходности, а choice1
и choice2
сопровождаются несколькими другими случайно сгенерированными числовыми переменными c.
Как можно легко изменить генерацию choice1
и choice2
, чтобы убедиться, что они всегда охватывают все 4 возможности, сохраняя при этом (в основном) случайность, без добавления 4 дополнительных неслучайных случаев, чтобы заставить их произойти?
Я чувствую как если можно использовать выбор без замены, но я не могу думать, как включить это.