我想在 C# 中创建一个随机方法,它给我一个 0 到 maxValue 之间的数字,其中返回数字的概率越高,返回值就越小。
也许可以选择设置衰减率
有什么想法吗?
如果我理解正确,您想要做的是随机化 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 之间的任何数字。
如果这不是您想要的,请告诉我。