|
>ループで1から10のランダムを使ってすべて表示したいとき、aにランダムな数値を入れます。
>次にまた1から10の数値をランダムして入れる時、aには一回1の数値を入れてるのでいれたくありません。どうしたらいいですか?
重複しない乱数値列は,通常採りうる値を並べた配列をシャッフルすることによって生成します。
void shuffle (int array[], int count)
{
int i;
for (i = 0; i < count; ++i) {
int temp, target;
target = rand() % count; /* サンプルなので下位ビットのランダム性に関する話は無視 */
temp = array[i];
array[target] = array[i];
array[i] = temp;
}
}
あとはこれを使えばできるかな?
#私が読みとれたのは,重複しない乱数値列が欲しそうだ,ということ。
#何がしたいのかはよくわからなかった……。
|