首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何确定随机范围的低>高?

如何确定随机范围的低>高?
EN

Stack Overflow用户
提问于 2018-05-28 06:02:15
回答 1查看 0关注 0票数 0

我目前正在尝试为一个项目建立一个随机数生成方法。其目的是随机生成20个变量,并设置一个总和。我的问题是随机范围。我总是得到我的low>=High,或者在这种情况下,和变得比开始小。我以前用过随机的,但没有成功。我如何在保持随机范围内的方法的同时解决这个问题呢?

代码语言:txt
复制
def Randomize(NumVariables,VarSum):
    Start = 500 
    Step = 1
    Sum = VarSum
    Parameters=[];
    for i in range(NumVariables):
        Parameters.append(random.randrange(Start,Sum,Step))
        Sum = Sum - Parameters[i]
        Start = Start - 25
EN

回答 1

Stack Overflow用户

发布于 2018-05-28 15:35:26

这似乎是一个递归问题,因此我研究了一个递归解决方案:

代码语言:txt
复制
from random import randrange

def randomize(number_variables, variable_sum):

    if number_variables == 1:
        return [variable_sum]

    variable = randrange(variable_sum // number_variables // 2, 1 + 2 * variable_sum // number_variables)

    return [variable] + randomize(number_variables - 1, variable_sum - variable)

numbers = randomize(20, 10000)
print(sum(numbers), '=', numbers)

输出量

代码语言:txt
复制
> python3 test.py
10000 = [995, 256, 671, 626, 884, 763, 704, 211, 702, 479, 253, 346, 348, 518, 495, 206, 492, 319, 653, 79]
> python3 test.py
10000 = [261, 497, 562, 885, 659, 496, 383, 889, 319, 264, 246, 563, 858, 712, 671, 255, 599, 363, 250, 268]
> 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100001606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档