如何解决具有给定均值和标准差的正随机数生成
我正在做一个模拟项目。需要有关随机数生成的帮助。我需要两组随机数。
属性:
- 主集 (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。
你可以这样试试:
- 根据 Box-Muller 生成单位正态变量对
- 将这些对缩放到任何 (µ,σ) 参数
- 拒绝不符合您标准的配对
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。