永发信息网

python 如何生成和为固定值的N个随机数?

答案:2  悬赏:20  手机版
解决时间 2021-11-08 19:21
  • 提问者网友:書生途
  • 2021-11-08 10:30
python 如何生成和为固定值的N个随机数?
最佳答案
  • 五星知识达人网友:像个废品
  • 2021-11-08 10:52
import random
lst=[]
n=60
for i in range(10):
    lst.append(random.randint(0,n))
    n-=lst[i]
print(lst)
全部回答
  • 1楼网友:往事埋风中
  • 2021-11-08 11:05

1、如果是从60个数字中随机产生10个数字,10个数字不重复,在(0,60)区间的10个数之和不可能等于60,故只能考虑10个数字重复的情况

2、如果10个数字按可重复来考虑,就是从区间(0,60)生成10个数,相加和等于60的,放入列表list

3、不过(0,60)区间比较大,要求和等于60又比较小,所以计算机遍历需要的时间比较长,代码如下:

#python3

import random
import time
iRandom = []
listRandom =[]
def main():

    n1 = random.randint(0,60)
    n2 = random.randint(0, 60)
    n3 = random.randint(0, 60)
    n4 = random.randint(0, 60)
    n5 = random.randint(0, 60)
    n6 = random.randint(0, 60)
    n7 = random.randint(0, 60)
    n8 = random.randint(0, 60)
    n9 = random.randint(0, 60)
    n10 = random.randint(0, 60)
    if (n1+n2+n3+n4+n5+n6+n7+n8+n9+n10) == 60:
        listRandom = n1,n2,n3,n4,n5,n6,n7,n8,n9,n10
        iRandom.append(listRandom)
        print(iRandom)
    else: print('还没有找到')

def do_while():
    while True:
       main()
       time.sleep(0.0000001)


do_while()
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯