random - 具有给定均值和标准差的正随机数生成
问题描述
我正在做一个模拟项目。在随机数生成方面需要帮助。我需要两组随机数。
特性:
- 主集 (var_a) > 正态分布,大于 0,具有给定的均值和标准差。
- 辅助集 (var_b) -> 与主集相同,另外,第二个集不能大于主集。原因是确定性函数的输出将仅以 0-1 之间的百分比表示。例如:
import numpy as np
n = 100000
# Calls Handled
callshandled = np.random.normal(loc=65, scale=97, size=n)
print('Calls handled: ', callshandled)
# Call handled within sl. Has to always be less or equal to Calls Handled
ansinsl = np.random.normal(loc=60, scale=82, size=n)
print('Answered in SL', ansinsl)
# Service Level - Has to be between 0-1. With normal distribution we get values in negative
sl = np.array(ansinsl)/np.array(callshandled)
print('Service level', sl)
Calls handled: [ 43.26825426 129.79198758 31.56460354 ... 37.45059791 1.71420416
-94.87241356]
Answered in SL [-12.72293091 204.28084996 232.25722235 ... 166.03208722 -53.69933624
-36.71949656]
Service level [ -0.29404771 1.57390956 7.35815427 ... 4.43336279 -31.32610312
0.38704082]
解决方案
有一种众所周知的“自然”方法可以生成高斯伪随机变量对,称为Box-Muller。
你可以这样尝试:
- 生成成对的单位正态变量à la Box-Muller
- 将这些对缩放到您的 (µ,σ) 参数是什么
- 拒绝不符合您标准的配对
推荐阅读
- json - 如何使用 go struct 制作复杂的 json 数据?
- c# - C# linq - 按字母顺序,然后按特定值排序
- reactjs - 私有路由(react gatsby)在能够检索用户信息进行身份验证之前呈现
- c++ - 此 C++ 程序存在问题(十进制到 Bin、Oct 和 Hex 转换器)
- mysql - Sequelize 多对多关系不作为外键保存在数据库中
- python-3.x - 将驱动器文件发送到 python 电报机器人
- powershell - PowerShell Invoke-WebRequest 不发送 cookie
- highcharts - HighCharts 绘制自定义线段标注
- python - 如何根据百分比概率生成伪随机字符串?
- list - 从 JSON 创建 Python 字典