我需要两个函数。一个会生成随机偶数,第二个会生成随机奇数。c# 中有内置函数吗?
谢谢
如果您对分布没有任何特殊要求,可以使用常规的随机 C# 函数:
Random rnd = new Random();
rnd.Next(int.MaxValue/2)*2; // an even integer
rnd.Next(int.MaxValue/2)*2+1; // an odd integer
注意 您可能会相应地调整最小/最大范围以避免溢出并保持在您的范围内。
你可以这样做:
private static int RandomNumberEven(int min, int max)
{
Random random = new Random();
int ans = random.Next(min, max);
if (ans % 2 == 0) return ans;
else
{
if (ans + 1 <= max)
return ans + 1;
else if (ans - 1 >= min)
return ans - 1;
else return 0;
}
}
private static int RandomNumberOdd(int min, int max)
{
Random random = new Random();
int ans = random.Next(min, max);
if (ans % 2 == 1) return ans;
else
{
if (ans + 1 <= max)
return ans + 1;
else if (ans - 1 >= min)
return ans - 1;
else return 0;
}
}
用这个
(我假设你需要 10 个奇数和 10 个偶数)
Random r = new Random();
List<int> even = new List<int>();
List<int> odd = new List<int>();
while(even.Count < 10 || odd.Count < 10)
{
int i = r.Next();
if(i % 2 == 0)
{
if(!even.Contains(i) && even.Count < 10)
even.Add(i);
}
else
{
if(!odd.Contains(i) && odd.Count < 10)
odd.Add(i);
}
}