【问题标题】:generate random integers without replacement to obtain a fixed sum using n unique integers (Python)使用 n 个唯一整数生成不带替换的随机整数以获得固定总和(Python)
【发布时间】:2026-01-11 02:50:01
【问题描述】:

如标题所述,如何生成不带替换的随机整数(每个整数必须是唯一的)以使用 20 个唯一整数获得总和 1400?但同时应用了一个约束?
约束:每个唯一整数的范围应该是1

【问题讨论】:

标签: python-3.x random


【解决方案1】:

以下解决方案有效,但效率非常低。您正在处理的数字很小,因此不会花费太多时间,但对于较大的数字,这将花费很长时间。


import random
l = []
s = 1400

while True:
    x = random.randint(1,100)
    if x not in l:
        if (s - x) > 0:
            l.append(x)
            s -= x
        
        elif (s - x) == 0:
            l.append(x)
            s-=x
            print(l)
            break
        
        if len(l) >= 20:
            l = []
            s = 1400

【讨论】:

  • 这对于我的任务来说已经足够完美了。谢谢!!
最近更新 更多