我正在尝试编写一个程序来从美国人口普查姓氏列表中选择一个随机名称。列表格式为
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 行。
我曾尝试查看有关加权随机性的其他一些问题,但我在将理论转化为代码时遇到了一些麻烦。我对数学理论知之甚少,所以我不知道这是否是“有或没有替换”随机选择,我希望同一个名字能够多次出现,这意味着。