无偏返回 n 个随机正数 (>=0) 的列表,使得它们的总和 == 总和

2024-04-20

我正在寻找一种算法或建议来改进我的代码以生成随机数列表,这些随机数的总和等于某个任意数。对于下面的代码,它总是有偏差,因为第一个数字往往会更高。

有没有办法让选号更高效?

#!/usr/bin/python
'''
  Generate a list of 'numbs' positive random numbers whose sum = 'limit_sum'
'''

import random


def gen_list(numbs, limit_sum):
  my_sum = []
  for index in range(0, numbs):
    if index == numbs - 1:
      my_sum.append(limit_sum - sum(my_sum))
    else:
      my_sum.append(random.uniform(0, limit_sum - sum(my_sum)))

  return my_sum

#test
import pprint
pprint.pprint(gen_list(5, 20))
pprint.pprint(gen_list(10, 200))
pprint.pprint(gen_list(0, 30))
pprint.pprint(gen_list(1, 10))

输出

## output

[0.10845093828525609,
 16.324799712999706,
 0.08200162072303821,
 3.4534885160590041,
 0.031259211932997744]

[133.19609626532952,
 47.464880208741029,
 8.556082341110228,
 5.7817325913462323,
 4.6342577008233716,
 0.22532341156764768,
 0.0027495225618908918,
 0.064738336208217895,
 0.028888697891734455,
 0.045250924420116689]

[]

[10]

为什么不直接生成正确数量的均匀分布的随机数,将它们加起来并按比例缩放?

编辑:更清楚一点:你想要 N 个总和为 S 的数字?因此,在区间 [0,1) 上生成 N 个均匀分布的随机数,或者无论你的 RNG 产生什么。将它们相加,它们总计为 s(比如说),而您希望它们总计为 S,因此将每个数字乘以 S/s。现在我认为数字均匀随机分布在 [0,S/s) 上。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无偏返回 n 个随机正数 (>=0) 的列表,使得它们的总和 == 总和 的相关文章

  • 窗口多维 Tensorflow 数据集

    我有形状的二维数据m by n我想要的窗口大小w沿着第一个轴进入数据集m w许多二维数组 每个数组的大小w by n 例如如果数据是 0 1 2 3 4 5 6 7 8 9 10 11 然后我想将其窗口化 0 1 2 3 4 5 6 7 8
  • 为什么我的 jupyter 笔记本中不需要“%matplotlib inline”?

    我只是想理解为什么我的 jupyter 安装不需要我运行 matplotlib inline 根据我读过的所有内容 我应该运行它才能将我的绘图内联到我的 jupyter 笔记本中 但事实是 无论我是否运行 matplotlib inline
  • Numpy 中矩阵乘以另一个矩阵的每一行

    我有一个大小为 4x4 的齐次变换矩阵和一个大小为 nx3 的轨迹 该轨迹的每一行都是一个向量 我想将齐次变换矩阵乘以轨迹的每一行 下面是代码 append zero column at last trajectory np hstack
  • Matplotlib 颤抖比例

    我正在尝试使用 matplotlib 和 quiver 函数绘制一些箭头 但我想使用数组单独选择每个箭头的长度 http matplotlib sourceforge net api pyplot api html matplotlib p
  • 如何创建自定义颜色图并将其用于不同范围的数据?

    假设我有这样的数据 import numpy as np import matplotlib pyplot as plt import matplotlib colors for reproducibility purposes np ra
  • 查找数组中的重叠数据

    我们正在编写一个 C 应用程序 它将有助于删除不必要的数据重复器 只有在以下情况下才可以移除中继器 all它接收到的数据被其他中继器接收 我们第一步需要做的事情解释如下 例如 我有 int 数组的集合 A 1 2 3 4 5 b 2 4 6
  • 给定一个正整数 n,如何打印高度为 n-1 的数字三角形?

    HackerRank 三角任务 https www hackerrank com challenges python quest 1 problem 仅使用算术运算 单个for loop 和一个单一的print陈述 不允许进行字符串操作 约
  • 为什么我的查询在参数化后会中断?

    我有 2 张桌子 Sales and Product Sales可以将产品存储为Idn or Name 传统设计 和Type列指定实际type与之相关 Product等是连接的子集表into这个表来获取真实的数据 在这个例子中 Produc
  • 如何使用Python中的or-tools解决累积旅行商问题?

    累积旅行商问题 CTSP 的目标是最小化到达客户的时间总和 而不是总旅行时间 这与最小化总旅行时间不同 例如 如果一个人拥有无限的车辆 车辆与位置数量相同 并且目标是最大限度地减少到达位置的总时间 则可以为每个位置发送一辆车 因为这是满足所
  • Python 删除额外的特殊 unicode 字符

    我正在 python 中处理一些文本 它内部已经采用 unicode 格式 但我想删除一些特殊字符并用更标准的版本替换它们 我目前有一条看起来像这样的线路 但它变得越来越复杂 我发现它最终会带来更多麻烦 tmp infile lower r
  • 为什么使用 no-op 来填补 paxos 事件之间的空白是合法的?

    我正在学习Paxos算法 http research microsoft com en us um people lamport pubs paxos simple pdf http research microsoft com en us
  • TensorFlow 运算符重载

    有什么区别 tf add x y and x y 在 TensorFlow 中 当您使用以下命令构建图表时 您的计算图表会有什么不同 代替tf add 更一般地说 有 或者其他张量超载的操作 如果至少有一个x or y is a tf Te
  • BeautifulSoup - 抓取论坛页面

    我正在尝试抓取论坛讨论并将其导出为 csv 文件 其中包含 线程标题 用户 和 帖子 等行 其中后者是每个人的实际论坛帖子 我是 Python 和 BeautifulSoup 的初学者 所以我对此感到非常困难 我当前的问题是 csv 文件中
  • 在Python中,如何将“datetime”对象转换为秒?

    我有一堆日期时间对象 我想计算每个对象自过去固定时间以来的秒数 例如自 1970 年 1 月 1 日以来 import datetime t datetime datetime 2009 10 21 0 0 这似乎只是区分具有不同日期的日期
  • pytest 看不到正在测试的函数的日志

    我有一个像这样的烧瓶应用程序 from flask import Flask import logging app Flask name app route def catch all logging warning I m a warni
  • PDB.run - 重新启动 pdb 会话

    我对 python 和 pdb 比较陌生 但我对 gdb 有很多经验 我的问题是 如果我在代码中设置了多个断点 我会想要更改一些内容并重新运行我的调试会话并保留这些断点 但是 在我的 pdb 会话中输入 run 会导致我的会话终止并显示以下
  • Python Flask 不更新图像[重复]

    这个问题在这里已经有答案了 这里有一些关于图像的 Flask 问题 但没有一个能解决我的问题 我有一个应用程序可以创建图像 保存它 然后显示它 一次 它应该多次执行此操作 每次更改图像时 它应该加载新图像 它不是 它只显示与其显示的文件名关
  • AttributeError:模块“matplotlib”没有属性“font_manager”

    我安装了 matplotlib 但 python 3 8 10 显示了这个错误 AttributeError module matplotlib has no attribute font manager What i am doing w
  • 从多个 .csv 文件创建混淆矩阵

    我有很多具有以下格式的 csv 文件 338 800 338 550 339 670 340 600 327 500 301 430 299 350 284 339 284 338 283 335 283 330 283 310 282 3
  • 在 Jupyter Notebook 上使用 virtualenv

    我尝试使用virtualenv在 jupyter 笔记本上 使用环境中安装的所有软件包 但在 jupyter 内部它们无法识别 已经尝试过 pip install tornado 4 5 3 pip install ipykernel 4

随机推荐

  • 在 PHP 的 require_once 中使用查询字符串

    在我的其中一个页面上有一个require once path to url page php 没有任何问题 当我添加查询字符串时require once path to url page php var test 它将不再包含该文件 只是一
  • Web 应用程序的计划任务

    为 Web 应用程序创建计划任务 无论是否有单独的 Web 桌面应用程序 有哪些不同的方法 如果我们谈论的是 Microsoft 平台 那么我总是会开发一个单独的 Windows 服务来处理此类批处理任务 您始终可以引用 Web 应用程序正
  • 无法在 Scala 中使用 Apache Commons CLI Option.builder()

    在 Spark shell 或应用程序 用 Scala maven 构建编写 中 我无法使用 Apache Commons CLI 包中的静态构建器方法 我已确认我将 jar 包含在类路径中并且可以访问Option类以及包中的其他类 例如O
  • 我可以将 jQuery UI 对话框置于 div 中心吗?

    我有一个主要内容 div 我想将对话框置于该 div 的中心 而不是页面的中心 有任何想法吗 我知道有一个位置实用程序 但我不知道如何将它与对话框位置选项一起使用 你是对的 position http jqueryui com demos
  • 将 hibernate 投影结果映射到 java POJO 模型

    在过去的几周里 我一直在使用 spring 和 hibernate 并且我一直在那里学习新的东西 现在我有一个问题想用 Hibernate 中的投影来解决 假设有一个模型Person这个模型有很多Car 以下是类定义的大致样子 public
  • 计算机状态(睡眠、休眠、锁定等) Windows 10

    我需要检查当前状态 计算机的 休眠 睡眠 待机锁定等 我只是想问一下如何使用C 获取我的计算机的当前状态 我已经通过检测 LockApp 进程知道计算机何时被锁定 但我无法知道它是否处于睡眠模式或休眠模式 我想尝试一个将使用任务计划程序运行
  • Solr 管理控制台中模式浏览器屏幕中的字段

    上面是特定索引的架构浏览器屏幕的屏幕截图 该字段是品牌 字段类型定义如下
  • 属性“user”在类型“Request>”上不存在

    请帮助 我收到此错误 src app middlewares authentication ts 16 17 error TS2339 Property user does not exist on type Request
  • css 旋转与过渡似乎会影响其他元素的不透明度?

    我遇到了使用 1s 过渡通过 CSS3 变换旋转 DIV 的问题 在 OSX 10 7 5 上的 Chrome 23 和 Safari 6 中 在 rotate divs 转换期间 其他容器中的字体会稍微变暗 关于造成这种情况的原因以及如何
  • 当前位置权限对话框消失得太快

    我的应用程序获取用户位置 获取坐标 并提供往返目的地或出发地的距离 所有这些可能的目的地都显示在表格视图中 因此我在填充表格的同时获取用户坐标 唯一的问题是 询问用户位置的警报视图出现然后消失得如此之快 以至于无法单击它 有什么方法可以在应
  • 使用 openmp 优化 N-queen

    我正在学习 OPENMP 并编写以下代码来解决 n 皇后问题 Full Code https github com Shafaet Codes blob master OPENMP Parallel 20N Queen 20problem
  • 如何调整 CWnd 内 WPF 控件的大小?

    我正在托管 WPFUserControlMFC 内部CWnd 它工作得很好 我现在需要弄清楚如何与其父控件一起调整控件的大小 我已经迷上了OnSize我正在打电话GetWindowRect并将结果设置为我的控件 如下所示 void CChi
  • Spark任务仅在一个执行器上运行

    大家好 首先我知道这个线程的存在 Spark 中的任务仅在一个执行器上运行 https stackoverflow com questions 53425983 task is running on only one executor in
  • 如何在 Angular ui-router 中禁用静态 url?

    我有两个 ui routerstates在我的角度应用程序中 效果很好 如下所示 app config stateProvider function stateProvider stateProvider state settings ur
  • Python..将bin/hex文件转换为txt文件

    我想在python中将bin文件转换为txt文件 with open atb bin rb as file data file read 8 datastring str data print datastring print join s
  • SQL Server 2012 列标识增量在第 7 个条目上从 6 跳到 1000+ [重复]

    这个问题在这里已经有答案了 我有一个奇怪的场景 其中 SQL Server 2012 数据库中的 auto Identity int 列没有正确递增 假设我有一个使用 int auto 标识作为主键的表 它偶尔会跳过增量 例如 1 2 3
  • 在模态和非模态情况下重用 UIViewController

    我有一个 UIViewController 让我们称之为 FormController 它只是一个编辑对象的表单 我想在两种不同的情况下使用它 创建一个新对象 使用 UINavigationController 的presentModalV
  • 离开网站时弹出

    我遇到了 JavaScript 问题 我想要一个脚本 该脚本将在退出整个网站时弹出一条带有问题的消息 如果访问者回答 否 则网页将关闭 如果他回答 是 他将被重定向到另一个页面 我找到了一个例子http www pgrs net 2008
  • xcode CollectionViewController rollToItemAtIndexPath 不工作

    我创建了一个CollectionView控制并用图像填充它 现在我想在开始时滚动到特定索引处的项目 我已经尝试过scrollToItemAtIndexPath如下 self myFullScreenCollectionView scroll
  • 无偏返回 n 个随机正数 (>=0) 的列表,使得它们的总和 == 总和

    我正在寻找一种算法或建议来改进我的代码以生成随机数列表 这些随机数的总和等于某个任意数 对于下面的代码 它总是有偏差 因为第一个数字往往会更高 有没有办法让选号更高效 usr bin python Generate a list of nu