如何生成1到10之间的随机整数,包括5次,但是其中一个值为1的一次有80%的可能性?可能吗?
答案 0 :(得分:2)
根据问题,随机数必须生成5次。每次必须检查选择值“1”的80%概率。在其他20%的情况下,返回2到10之间的随机数。
import random
def get_number():
if random.random() <= 0.8:
return 1
else:
return random.randint(2, 10)
for i in range(5):
print(get_number())
答案 1 :(得分:0)
随机80%的时间,从2到10的范围内绘制四个值的样本,追加1,然后随机播放。另外20%的时间只是从除1之外的值范围中抽取五个值的样本。
if random.random() <= 0.8:
result = random.sample(xrange(2,11), 4) + [1]
random.shuffle(result)
else:
result = random.sample(xrange(2,11), 5)
请注意,我假设没有替换的采样。如果您想要替换采样,则需要进行修改。