int[3,3]
すべての値で構成される整数の2次元配列(たとえば)では、配列のランダムな要素を可能な限り効率的に値0
に設定したいと思います。私が遭遇している問題は、配列の最初の要素が、配列の後半にある他の要素よりも値を持つ可能性が高いことです。n
1
1
これが私のコードです。以下の例では、3x3配列のランダムに選択された3つの要素を1に設定しようとしています。
int sum = 0;
private void MakeMatrix()
{
for (int i = 0; i < 3; i++)
{
for (int k = 0; k < 3; k++)
{
int n = _r.Next(2);
if (n != 1 && sum < 3)
{
matrix[i, k] = 1;
sum++;
}
else
{
matrix[i, k] = 0;
}
}
}
}