Python 如何生成具有不同概率的骰子卷?

Python 如何生成具有不同概率的骰子卷?,python,function,for-loop,Python,Function,For Loop,只是做一个家庭作业问题,要求制作一个掷骰子程序,其中一个或两个数字可能比其他数字更容易打印出来。例如,与骰子上的其他元素相比,示例2和/或3打印的可能性可能高出10%或20%。我得到了代码,我可以让它在骰子上打印一个随机数,但不知道如何获得加权输出 输入: def roll_dice(n, faces = 6): rolls = [] rand = random.randrange for x in range (n): rolls.append(ra

只是做一个家庭作业问题,要求制作一个掷骰子程序,其中一个或两个数字可能比其他数字更容易打印出来。例如,与骰子上的其他元素相比,示例2和/或3打印的可能性可能高出10%或20%。我得到了代码,我可以让它在骰子上打印一个随机数,但不知道如何获得加权输出

输入:

  def roll_dice(n, faces = 6):
    rolls = []
    rand = random.randrange

    for x in range (n):

      rolls.append(rand(1, faces + 1 ))

    return rolls

  print (roll_dice(5))
输出:
[5,11,6,7,6,5]

来自scipy导入统计
数值=np.arange(1,7)
概率=(0.1,0.2,0.3,0.1,0.1,0.2)#概率之和必须为1
custm=stats.rv_离散(值=(值,概率))
对于范围(10)内的i:
打印(custm.rvs())
1,2,3,6,3,2,3,2,2,1

来源:

如果您使用的是Python 3

import random
rolls = random.choices([1,2,3,4,5,6],weights=[10,10,10,10,10,50], k=10)

rolls
out:[1, 3, 2, 5, 3, 4, 6, 6, 6, 4]

这回答了你的问题吗?结尾的k代表什么?@FarhanIqbal,您要生成的项目数