- 302 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 16:24:11 ]
- >296
多分、ユニークな乱数列、の意味が人によって違っているような気がする。 「乱数列」がユニークであることを望んでいるのではなくて、乱数列中に表れる数値がユニーク(重複しない) ってことなんだよね? C++ で良ければ(アルゴリズムの説明にならないけど)、>299 で random_shuffle() 使うのが一番簡単かと。 あるいは、random(N) を 0〜N-1 の整数を発生する(シード値をとれる)疑似乱数生成関数として、a[0]〜a[N-1] にたいして、 for(i=0;i<N;++i) { idx = random(N); tmp = a[i]; a[i] = a[idx]; a[idx] = tmp; } で、いいんじゃない?
|

|