米国国勢調査の名前リストからランダムな名前を選択するプログラムを作成しようとしています。リストの形式は
Name Weight Cumulative line
----- ----- ----- -
SMITH 1.006 1.006 1
JOHNSON 0.810 1.816 2
WILLIAMS 0.699 2.515 3
JONES 0.621 3.136 4
BROWN 0.621 3.757 5
DAVIS 0.480 4.237 6
次のような構造にデータをロードすると仮定します
Class Name
{
public string Name {get; set;}
public decimal Weight {get; set;}
public decimal Cumulative {get; set;}
}
名前のリストを保持するのに最適なデータ構造と、リストからランダムな名前を選択するが、名前の分布を実際の世界と同じにするための最良の方法は何でしょうか。
データ構造に違いがある場合にのみ、最初の10,000行を処理します。
加重ランダム性に関する他のいくつかの質問を調べてみましたが、理論をコードに変換するのに少し問題があります。私は数学理論についてあまり知らないので、これが「置換の有無にかかわらず」ランダムな選択であるかどうかはわかりません。同じ名前が複数回表示されるようにしたいのです。