如何用C#中的权重编写随机数生成器?

tau*_*ger 4 c# random algorithm math

我试图在C#中编写一个随机数生成器函数,它将采用最小,最大权重参数.

当权重== 0时,结果将等于最小值,并且权重== 1,结果将等于最大值.当权重== 0.5时,范围内的所有数字都有相同的选择机会.

我想要实现的是当重量接近最小值时,最小值有更多选择机会,最小值更少,反之亦然.

Eri*_*ert 15

我有一个简短的教程,描述如何在这里做到这一点:

https://ericlippert.com/2012/02/21/generating-random-non-uniform-data/

摘要:

  • 说明由加权参数参数化的函数,该函数给出概率分布函数.
  • 使用微积分来集成该函数以获得累积分布函数.
  • 反转该函数以获得分位数函数.
  • 实现分位数函数,并将均匀分布的随机源的输出传递给分位数函数.结果将是符合所需分布的随机源.
  • 将该函数转换为整数范围,并适当地舍入.