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