電子書籍の厳選無料作品が豊富!

例えば、
1-10を
3 6 7 5 1 8 2 4 9 10
というように並べることは、できますでしょうか?
Rand関数を使えばできますか?

よろしくお願いします。

A 回答 (3件)

でけます。



最初、10個のうちから1つ選ぶ。

次は、9個のうちから1つ選ぶ。(すでに選んだ数はパスすればよい)

次は、8個のうちから…

と繰り返していきます。
1~10、もしくは1~9の乱数を作り出すには、
rand()を使います。
    • good
    • 1
この回答へのお礼

ありがとうございます。
ひと手間かかりますか。
その方針でやってみようと思います。

お礼日時:2004/03/29 20:10

シャッフルするのが簡単。


配列に1から10まで並べる。
1番目の配列の中身を、1から10番目のうちランダムに選んだものと入れ替える。
2番目の配列の中身を~と10回入れ替えておしまい。
    • good
    • 0
この回答へのお礼

ありがとうございました。
srand(now);で、3分かかりましたので、
おかしいなぁと思いましたが、
修正できました。
ありがとうございます。

お礼日時:2004/03/29 20:57

1 0.23


2 0.75
3 0.11

9 0.72
10 0.69

と並べ替えたい数と乱数をセットにして、乱数の方をキーにソートとか。
ソートのアルゴリズムが利用できるのなら楽かも。
    • good
    • 0
この回答へのお礼

ありがとうございました。
srand(now);で、3分かかりましたので、
おかしいなぁと思いましたが、
修正できました。
ありがとうございます。
for(int a=0,int x=0;a<104;a++,x++)
{
time(&now);
srand(now+a+x);
ran[a]=1+rand()%104;
for(int b=0;b<a;b++)
{
if(ran[a]==ran[b])
{
a--;
}
}
}

お礼日時:2004/03/29 20:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!