random - 将一个数字分成随机数量的部分,每个部分的总和再次形成该数字

标签 random

假设我有一个整数50。我试图将其分成随机数量的部分,以便每个部分的总和再次形成 50 。例如,如果我将其分为 4 部分:20 + 10 + 15 + 5 = 50

零件数量(始终小于总量)必须随机生成和提供。我怎样才能实现这个目标?

最佳答案

Python 代码:

def split_num():
    n = 50
    parts = random.randint(1,n)
    result = []
    for i in range(parts-1):
        x = random.randint(1,n-parts+i+1)
        n = n - x
        result.append(x)
    result.append(n)
    print(result)
    print(sum(result))

import random
split_num()

结果:

[4, 33, 4, 1, 8]
50

关于random - 将一个数字分成随机数量的部分,每个部分的总和再次形成该数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67998524/

相关文章:

javascript - 随机唯一数字的大小数组

matlab - 如何在MATLAB中模拟间歇性需求?

r - 我使用的是哪个 RNG 版本

python - 如何在python中生成具有两个精度的浮点随机数

c++ - rand() 每次运行程序时返回相同的数字

c++ - 将 C++ vector 初始化为随机值...快速

JQuery - 随机隐藏一组div/图像

javascript - 如何根据匹配参数从数组中选择几个随机 id 值?

python - 如何使用 random.seed 随机化字符串列表?

random - 随机函数中不可预测的含义是什么?