amocken 2022-01-29 22:06 采纳率: 0%
浏览 70

如何产生一列随机浮点数,总和不超过某个数?

用Python如何实现产生一列随机浮点数,总和不超过某个数?比如,产生10个随机浮点数,总和不超过50。时间性能要尽量地好
我只知道有一种简单粗暴的方法:

import numpy as np

def get_random_number_list():
      while True:
            nums = np.random.uniform(0.0, 50.0, 10)
            if np.sum(nums) <= 50.0:
                 break
      return nums

但这种方法效率太低,请问大家有什么高效一点的方法吗?

  • 写回答

4条回答 默认 最新

  • 程序猿那么可爱 2022-01-29 22:33
    关注

    可以用numpy库的pi方法实现:
    (这是我之前写过的代码,旁边有注释,你把参数改一下就好啦)

    img

    运行结果如下:

    img

    因为这是个一维数组,我们得处理一下,把里面的元素提取出来,用flat属性:
    为了方便操作,先将这个数组命名为b,然后element就是b里面的元素,通过for循环可print出来,如下图:(补充,end参数的作用是每个print后以什么结束,默认是换行,这里改成空格)

    img

    运行结果如下:(看第二行)

    img

    补充:最开始得import numpy as np

    评论 编辑记录

报告相同问题?

问题事件

  • 修改了问题 1月29日
  • 修改了问题 1月29日
  • 创建了问题 1月29日

悬赏问题

  • ¥15 对于这个复杂问题的解释说明
  • ¥50 三种调度算法报错 采用的你的方案
  • ¥15 关于#python#的问题,请各位专家解答!
  • ¥200 询问:python实现大地主题正反算的程序设计,有偿
  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败