如何模拟骰子掷骰子

问题描述 投票:1回答:4

如何模拟UNFAIR 6面模具的滚动。而不是每一侧都有机会出现平均数(1/6 = 16.7%),应该偏向中间数。滚动2、3、4或5的几率应该为20%,滚动1或6的几率只有10%。谢谢

python
4个回答
1
投票

如果安装了numpy,则可以使用numpy.random.choice以给定的概率分布进行采样。

import numpy as np
values = [1, 2, 3, 4, 5, 6]
probs = [0.1, 0.2, 0.2, 0.2, 0.2, 0.1]
sample = np.random.choice(values, p=probs)

5
投票

另一种可能性:

import random
result = random.choices([1, 2, 3, 4, 5, 6], weights=[10, 20, 20, 20, 20, 10])[0]

请参见documentation


3
投票

您可以用很多方法来做。这是比较容易的一种:

from random import choice
options = [1, 2, 2, 3, 3, 4, 4, 5, 5, 6]
result = choice(options)
print(result)

有10个值。获得1的概率百分比为(1/10)* 100 = 10%,获得2的概率百分比为(2/10)* 100 = 20%...


0
投票
import numpy as np

die_roll = np.random.choice(np.arange(1, 7, 1), p = [0.1, 0.2, 0.2, 0.2, 0.2, 0.1])
© www.soinside.com 2019 - 2024. All rights reserved.