我想生成10个整数加起来是40,在2-6的范围内.

例如:

2 + 6 + 2 + 5 + 6 + 2 + 2 + 6 + 3 + 6 = 40

10个介于2和6之间的随机数加起来是40.

推荐答案

我的 idea 是生成[2,6]范围内的数字,直到列表的长度为10,然后开始判断和,如果不是40,则删除列表的第一个元素并生成一个新的数字.唯一的问题是,您可能需要判断是否可以将数字与目标数字相加,例如,如果数字是奇数,但所有生成的数字都是偶数,则永远无法达到目标数字.

import random

low,high = 2,6
count = 10
target = 40

k = []
r = range(low,high+1)
tries = 0
while True:
    k.append(random.choice(r))
    if len(k) == count:
        if sum(k) == target:
            break
        k = k[1:]
        tries += 1
        
print(k)
print(len(k))
print(sum(k))
print(tries)

Python相关问答推荐

Python在通过Inbox调用时给出不同的响应

云上Gunicorn的Flask-socketIO无法工作

强制venv在bin而不是收件箱文件夹中创建虚拟环境

使用GEKKO在简单DTE系统中进行一致初始化

jit JAX函数中的迭代器

如何处理嵌套的SON?

比较两个二元组列表,NP.isin

三个给定的坐标可以是矩形的点吗

Python daskValue错误:无法识别的区块管理器dask -必须是以下之一:[]

如何将ctyles.POINTER(ctyles.c_float)转换为int?

标题:如何在Python中使用嵌套饼图可视化分层数据?

如何制作10,000年及以后的日期时间对象?

为什么sys.exit()不能与subproccess.run()或subprocess.call()一起使用

用NumPy优化a[i] = a[i-1]*b[i] + c[i]的迭代计算

如何请求使用Python将文件下载到带有登录名的门户网站?

如何在Python脚本中附加一个Google tab(已经打开)

给定高度约束的旋转角解析求解

在嵌套span下的span中擦除信息

当单元测试失败时,是否有一个惯例会抛出许多类似的错误消息?

如何求相邻对序列中元素 Select 的最小代价