繁体   English   中英

如何模拟掷骰子

[英]How to simulate roll of a dice

如何模拟 UNFAIR 6 面骰子的滚动。 而不是每一方都有平等的机会(1/6 = 16.7%),中间的数字应该受到青睐。 应该有 20% 的几率掷出 2、3、4 或 5,而只有 10% 的几率掷出 1 或 6。谢谢

另一种可能:

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

请参阅 文档

您可以通过多种方式做到这一点。 这是比较容易的方法之一:

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%……

如果您安装了 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)
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])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM