- PR -

乱数(System.Random)について

1
投稿者投稿内容
kost
会議室デビュー日: 2002/01/09
投稿数: 17
投稿日時: 2004-07-16 13:35
お世話になっております。
既出でしたら申し訳ありません。

乱数についてご質問があります。

下記のような記述をしたのですが、
値が重複するケースがあります。
例)40,20,13,40,5

値を重複させることなく、必要な件数を取得したい
(この場合は5件)のですが、どのようにしたら
良いのでしょうか?

ご存知の方がいらっしゃいましたらご教授願います。

------------------------------------------
Random rm = new Random();
listBox1.Items.Clear();
for(int i=0;i<5;i++)
{
int ram = rm.Next(50);
listBox1.Items.Add(ram);
}
------------------------------------------


[ メッセージ編集済み 編集者: kost 編集日時 2004-07-16 13:36 ]
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2004-07-16 13:57
取り出す回数と、取り出される値の範囲の比が十分に大きいか、
取り出す回数が非常に少ない場合であれば、重複チェックして
再度取り出すのでもいいでしょうけど…

取り出す回数がある程度以上大きいのであれば、
普通はシャッフルとかしますかね、やっぱり。
kost
会議室デビュー日: 2002/01/09
投稿数: 17
投稿日時: 2004-07-16 14:59
なちゃさん、ご回答ありがとうございます。

取り出される範囲は可変なのです。
取り出す回数は固定ですが。
ですので、71件中70件をランダムで抜き出すという
ケースも発生します。

取り出すものをDataSet型の変数にして、DataRowを取り出してデータセット。
その取り出したDataRowをRemoveして...というループにして
対応しました。
1

スキルアップ/キャリアアップ(JOB@IT)