Я пытаюсь написать программу для выбора случайного имени из списка фамилий переписи США . Формат списка
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;}
}
В какой структуре данных лучше всего хранить список имен и каков наилучший способ выбрать случайное имя из списка, но распределение имен будет таким же, как в реальном мире.
Я буду работать с первыми 10000 строк только в том случае, если это повлияет на структуру данных.
Я пытался рассмотреть некоторые другие вопросы о взвешенной случайности, но у меня возникли некоторые проблемы с превращением теории в код. Я не очень разбираюсь в математической теории, поэтому не знаю, является ли это случайным выбором «с заменой или без него», я хочу, чтобы одно и то же имя могло появляться более одного раза, что когда-либо означало.