生成具有定义的最小值、最大值、均值和标准差的随机数数组,指定元素数量和误差级别

-1 投票
2 回答
976 浏览
提问于 2025-04-15 20:58

我想生成一个随机数的数组,这个数组有指定的最小值、最大值、平均值和标准差,并且还要有一定数量的元素和误差水平。请问在C、C++、PHP或Python中有没有这样的库可以做到?请给我一些建议。谢谢!

2 个回答

4

如果你想用Python编程,我建议你使用numpy这个库。

http://docs.scipy.org/doc/numpy/reference/routines.random.html

你可能会找到很多适合你需求的分布,但也许你可以从一个叫做beta分布的地方抽样,然后把这些值调整到你需要的范围。你的代码大概会是这样的:

a1, a2 = ....
temp_array = numpy.random.beta(a1, a2, array_size)
answer = temp_array*(max_value-min_value) + min_value

如果你选择这种方法,你需要花点时间找出a1和a2的公式。

4

Boost C++随机数库可能可以满足你的一些需求,特别是对于某些分布,你可以选择分布的众数(也就是出现次数最多的值)。这就是我在自己代码中需要的,所以我没有进一步研究这个库。这个库并不会生成数组——通常你会使用C++中的std::vector来存放随机数生成的结果。

撰写回答