You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何生成10个和为40、取值范围2-6的随机整数?

生成10个2-6之间且总和为40的整数的方法

核心思路

先给每个数分配最小值2,10个数的基础总和为20,距离目标40还差20的增量。只需把这20的增量随机分配给10个数,每个数最多加4(因为6-2=4),最终每个数为2 + 分配到的增量,就能保证所有数落在2-6区间且总和为40。

具体实现逻辑(以Python为例)

import random

# 初始化每个数为基础值2
nums = [2] * 10
remaining_increment = 40 - sum(nums)  # 待分配的总增量:20

for i in range(len(nums)):
    # 每个数最多加4,取剩余增量和4的最小值作为本次分配量
    add = random.randint(0, min(remaining_increment, 4))
    nums[i] += add
    remaining_increment -= add
    if remaining_increment == 0:
        break

print(" + ".join(map(str, nums)), "=", sum(nums))

示例结果

  • 2 + 6 + 2 + 5 + 6 + 2 + 2 + 6 + 3 + 6 = 40
  • 3 + 5 + 4 + 4 + 4 + 5 + 3 + 5 + 4 + 3 = 40
  • 6 + 2 + 6 + 2 + 6 + 2 + 6 + 2 + 6 + 2 = 40

合理性验证

10个数的最小总和是10*2=20,最大总和是10*6=60,40处于这个区间内,因此必然存在符合要求的整数组合。只要分配的增量总和为20,且单个增量不超过4,就能得到满足条件的数组。

内容的提问来源于stack exchange,提问作者Scrampus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 07:21:32