Вы можете распределить диапазон вероятностей среди пользователей, используя словарь.Например,
Пользователь 1 имеет 1-4 (максимум 4)
Пользователь 2 имеет 5-8 (максимум 8) и т. д. и т. д.
Затем после выбораслучайное число определяет, к какому пользователю в словаре оно относится.Вы можете сделать это, используя Linq, например, так ...
int iUser = users.Where(p => (choice <= p.Value)).First().Key;
.., где users
- это Dictionary<int,int>
(Ключ = номер пользователя, Значение = максимальное значение), а choice
- это случайно сгенерированныйvalue.
Это, очевидно, более сложный метод, чем «множественные записи», предложенный другими, но имеет свои преимущества, если вам
a) требуется дробное взвешивание, которое делаетобщий знаменатель вашего метода многократного ввода очень мал (в результате чего много записей) или
b) необходимо сильно повлиять на конкретных пользователей (что опять-такиэффект создания метода многократного ввода очень большой).
Рабочий пример в ideone.