Мне очень жаль, я бы искал свой вопрос, но я не знаю, как правильно это сформулировать, у меня большая проблема с умственной математикой, и я пытался придумать решение. Я пытаюсь создать программу для моей гильдии, которая добавит имена в список. Этот список имеет параллельную структуру для каждой записи, которая содержит имя и количество людей пожертвования для лотереи.Связанная рандомизация
Я хочу рандомизировать все имена и получить положительные результаты от количества пожертвований, которые люди вложили. Нравится 1 или 1% увеличение возможности * количество пожертвований. Раньше я делал рандомизацию, но мне никогда не приходилось слегка влиять на шансы. Помоги мне, пожалуйста? Я бы опубликовал код, но в то время у меня не было ЛЮБОЙ рандомизации. Я могу дать вам некоторые другие вещи, хотя:
Я сделал-структуру, чтобы держать запись для каждого пользователя:
public struct pEntry
{
public string Name;
public int Entries;
}
Я сделал список для хранения всех записей:
public List<pEntry> lEntries = new List<pEntry>();
Я хочу, чтобы мой рандомизация должна быть подвержена положительному влиянию количества выполненных им пожертвований (пожертвований). У этого нет ограничения на то, насколько он может высок, но если мне нужно, может быть, я смогу это сделать. 255. После того, как он рандомизируется, он отобразит сообщение о том, что этот пользователь выиграл, и он удалит эту запись из списка и выберите еще несколько. Эта программа будет использоваться для нескольких лотерей и подобных вещей, но все они используют одну и ту же систему.
Почему бы не просто иметь список строк; каждый, кто покупает два билета, попадает в список дважды. Если они покупают три билета, их трижды ставят в список. Затем просто выберите случайный элемент из списка. В конце концов, так оно и работает на реальных бумажных билетах. –
Если вам нужно что-то быстрое и грязное, вы можете заполнить добавление участника массиву temp для каждой сделанной им записи. Затем вы можете рандомизировать индекс для этой коллекции. EDIT: @EricLippert избил меня до этого =) – TyCobb
Обратите также внимание, что если на линии есть серьезные деньги, вы должны использовать * криптографически безопасный источник случайности *. «Случайные» числа, генерируемые Math.Random, на самом деле очень предсказуемы; они только псевдослучайные. –