我如何生成一个随机数,它是集合[0,5,10,15]中的一个
本文关键字:一个 何生成 随机数 集合 | 更新日期: 2023-09-27 18:19:32
我一直在使用以下内容:
Random r = new Random();
var a = r.Next(9)
生成0-9之间的随机数。
然而,现在我需要随机生成以下数字之一:0,5,10,15
有没有一种方法可以让我修改它来选择上面的数字?
Random r = new Random();
var a = r.Next(4) * 5;
会成功的。请注意,该参数是独占的上界,因此永远不会生成它。您的代码示例生成的值介于0和8之间。
如果你需要一组不同的数字,你可以做以下操作:
int[] possible = new int[] { 0, 5, 10, 15 };
Random r = new Random();
int a = possible[r.Next(possible.length)];
Random rnd = new Random();
//create a pre-defined list
int[] nums = new int[] {0, 5, 10, 15};
int rndNum = nums[rnd.Next(nums.Length)];
您甚至可以重复循环,从数组中每个定义的数字集中生成一个以上的随机数。
是。把这四个数字放入一个由四个元素组成的数组中。然后生成0-3之间的随机数,并用它来索引数组
生成一个0到3之间的随机数,然后简单地将其用作数组的索引:
类似这样的东西(伪代码):
var nums = [0, 5, 10, 15];
return nums[new Random().Next(4)];
或者,如果它真的像5的倍数那么简单;简单相乘:
return new Random().Next(4) * 5;
const int iterator = 5;
const int upperBound = 15;
var possibleValues = (from n in Enumerable.Range(0, upperBound + 1)
where n % iterator == 0
select n).ToArray();
Random r = new Random();
var a = possibleValues[r.Next(possibleValues.Length)];
public static IEnumerable<int> Range(int count, int start = 0, int step = 1)
{
for (int i = start; i < count; i++)
yield return i;
}
var arr = Range(4, 0, 5).ToArray(); // 0, 5, 10, 15.
Random r = new Random();
var a = r.Next(4)*5;