私は以下を使用しています:
Random r = new Random();
var a = r.Next(9)
0 ~ 9 の乱数を生成します。
ただし、次の数字のいずれかをランダムに生成する必要があります: 0,5,10,15
上記の数字を選択するためだけにこれを変更する方法はありますか?
私は以下を使用しています:
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 の間の乱数を生成し、それを配列のインデックスとして使用します。
このようなもの(疑似コード):
var nums = [0, 5, 10, 15];
return nums[new Random().Next(4)];
または、それが本当に 5 の倍数のように単純な場合。単純に掛けます:
return new Random().Next(4) * 5;
はい。4 つの数値を 4 つの要素の配列に入れます。次に、0〜3の乱数を生成し、それを使用して配列にインデックスを付けます
Random r = new Random();
var a = r.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.