乱数の一意の(2つの数字は同じではない)セットを作成するように頼まれました (行と列の次元 'd1'と ' d2 ')2次元配列で重複する整数をチェックする
両方の配列の各要素を比較して、それらが重複しているかどうかを確認する方法は完全に失われています。
(マックスが生成される最大値である)
void RandomArray(IntArrayPtr* m, int d1, int d2, int max)
{
for (int i = 0; i < d1; i++)
{
for (int j = 0; j < d2; j++)
{
m[i][j] = (rand() % max + 1);
if (i > 0 && j > 0)
{
if (m[i][j] == m[i][j - 1] || m[i][j] == m[i-1][j])
{
m[i][j] = (rand() % max+ 1);
}
}
}
}
}
ローカルではなく、グローバルにユニティシティをチェックする必要があります。新しい乱数を描画しても、局所的なユニティシティは保証されません。(前と同じになる可能性があります) –
'm [i] [j] =(rand()%10 + 1); 1から10までの範囲内の*異なる番号がいくつありますか? –
これは、(rand()%max + 1)となっています。 –