重複無し乱数
Posted feedbacks - R
Rもそうですが、MathematicaやMATLABのような数値解析系はこういうの簡単に書けますね。 元のお題は「n * nのビンゴを出力せよ」みたいな感じだったのかな。 > sample(10) [1] 1 9 4 10 3 5 7 2 8 6
1 | bingo <- sample
|
もし,sample 関数がないとしたら,他の関数を使ってどう書くかを つまり,n個の一様乱数を発生させ,一様乱数の大きさの順で1〜nを並び替える > foo(10) [1] 10 9 1 3 2 5 7 8 4 6 > foo(10) [1] 7 10 2 9 5 4 1 8 3 6 > foo(100) [1] 7 84 53 70 26 21 90 37 33 82 65 40 74 95 24 1 4 97 38 6 [21] 94 15 18 12 29 19 43 52 85 47 3 64 78 88 81 46 87 55 16 28 [41] 62 41 17 36 25 42 39 11 56 58 61 91 44 20 51 71 60 31 75 96 [61] 80 13 50 14 10 57 59 35 5 48 30 77 27 67 100 72 92 68 54 83 [81] 79 89 73 23 98 99 69 76 8 2 22 86 63 93 66 32 34 9 45 49
1 | foo <- function(n) (1:n)[order(runif(n))]
|


raynstard
#3402()
Rating0/0=0.00
このお題はraynstardさんの投稿を元にしています。ご投稿ありがとうございました。 投稿の内容には表示のしかたも含まれていたのですが、 このお題では「重複しない1~nまでの乱数をどうやって作るか」という点に集中することにして、 結果の整形は続編としてこの後のお題で出すことにします。 サンプル入出力は下のようになります。
[ reply ]