如何模拟UNFAIR 6面模具的滚动。而不是每一侧都有机会出现平均数(1/6 = 16.7%),应该偏向中间数。滚动2、3、4或5的机会应该为20%,滚动1或6的机会应该只有10%。 谢谢
答案 0 :(得分:5)
另一种可能性:
import random
result = random.choices([1, 2, 3, 4, 5, 6], weights=[10, 20, 20, 20, 20, 10])[0]
请参见documentation。
答案 1 :(得分: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%...
答案 2 :(得分: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)
答案 3 :(得分:1)
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])