概率呈指数衰减的随机整数

问题描述 投票:0回答:1

我想在 C# 中创建一个随机方法,它给我一个 0 到 maxValue 之间的数字,其中返回数字的概率越高,返回值就越小。

也许可以选择设置衰减率

有什么想法吗?

c# math random
1个回答
0
投票

如果我理解正确,您想要做的是随机化 X 个数字,并且在每次迭代中您想要更改随机化的最大值? 在这种情况下,请尝试以下操作:

Random rnd = new Random();
int maxNumber= 100; // Maximum number
int rateOfDecay = 1; // Rate of decay, can be any number you want

for (int i = 0; i < 100; i++)
{
    //You can add whatever function here, in my case just printing.
    Console.WriteLine(rnd.Next(1, maxNumber - rateOfDecay));
}

这将有效减少每次迭代的最大数量。

如果你想要带小数:

for (int i = 0; i < 100; i++)
{
    Console.WriteLine(rnd.NextDouble(1, maxNumber - rateOfDecay));
}

您还可以将 maxNumber 乘以衰减率,例如 0.2 或 0 到 1 之间的任何数字。

如果这不是您想要的,请告诉我。

© www.soinside.com 2019 - 2024. All rights reserved.