-4

2つの関数が必要です.1つはランダムな偶数を生成し、2つ目はランダムな奇数を生成します.c#に組み込みの関数はありますか?

ありがとう

4

3 に答える 3

9

配布に関して特別な要件がない場合は、通常のランダムC#関数を使用できます。

Random rnd = new Random();
            rnd.Next(int.MaxValue/2)*2; // an even integer
            rnd.Next(int.MaxValue/2)*2+1; // an odd integer

オーバーフローを回避し、範囲内にとどまるために、それに応じて最小/最大範囲を調整する可能性があります。

于 2012-08-16T09:58:54.380 に答える
2

あなたはそのようにそれを行うことができます:

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;
            }
        }
于 2012-08-16T09:59:01.950 に答える
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);
    }
}
于 2012-08-16T10:10:03.713 に答える