C#:按顺序在两个限制之间生成随机数

本文关键字:两个 之间 随机数 顺序 | 更新日期: 2023-09-27 18:32:04

我想在两个限制之间生成随机(双精度)数,比如说:lim1和lim2。

但是,我希望按顺序生成此数字。 例如:介于 1 和 6 之间:1.53412 1.654564 2.213123 5.13522 .谢谢!

C#:按顺序在两个限制之间生成随机数

public static double[] GenerateRandomOrderedNumbers(double lowerBoundInclusive, double upperBoundExclusive, int count, Random random = null)
{
    random = random ?? new Random();
    return Enumerable.Range(0, count)
        .Select(i => random.NextDouble() * (upperBoundExclusive - lowerBoundInclusive) + lowerBoundInclusive)
        .OrderBy(d => d)
        .ToArray();
}

不完美,但我希望这能让你朝着正确的方向前进。

生成随机数并将它们放在列表中:

var numbers = new List<int>();
Random random = new Random();

添加您的号码:

var number = random.Next(min, max); 
numbers.Add(number);

然后对列表进行排序:

var orderList = from n
  in numbers
  orderby n
  select n;

使用它来生成一组随机数怎么样:

lim1 + random.Next(lim2 - lim1)

然后简单地对它们进行排序?

另请参阅:

  • 如何在 Java 中生成特定范围内的随机整数?