重複無し乱数
Posted feedbacks - Erlang
1> c(bingo).
{ok,bingo}
2> bingo:bingo(10).
[3,1,9,2,5,10,8,4,6,7]
3> bingo:bingo(3).
[2,1,3]
4> bingo:bingo(3).
[1,3,2]
5> bingo:bingo(3).
[1,2,3]
6> bingo:bingo(10).
[10,3,5,1,4,6,2,7,8,9]
1 2 3 4 5 6 7 8 9 10 | -module(bingo).
-export([bingo/1]).
bingo(Num) -> bingo_sub(lists:seq(1, Num), Num).
bingo_sub(List, 0) -> List;
bingo_sub(List, Num) ->
R = lists:nth(random:uniform(length(List)), List),
L = [R | [X || X <- List, X =/= R]],
bingo_sub(L, Num - 1).
|



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