как сделапть на C# вероятность "ДА" 20%

  • Автор темы Автор темы PROforum
  • Дата начала Дата начала
С чего ты взял)) Так не должно быть. Это вероятность, ее нельзя предсказать. Снипет работает, проверил.

Если надо очередность, то это совсем другая задача.
Как можно еще очередность прикрутить. Вот например 10 раз выполнить шаблон, из них 7 на лево и 3 на право, или 50 на 50, 80 на 20, от настроек?
 
Как можно еще очередность прикрутить. Вот например 10 раз выполнить шаблон, из них 7 на лево и 3 на право?
Только списками (наверно)
3 строки да,
7 строк нет

или наоборот.
 
Обработка текста - в список))
Не буду я наверно, усложнять, сделаю себе три настройки, на лево, на право, и рандом, но все же интересно что суда писать?
61844
 
Не буду я наверно, усложнять, сделаю себе три настройки, на лево, на право, и рандом, но все же интересно что суда писать?
Да
Нет
Рандом
(количество сам выбирай, 10 записей сделай и это будет значит 10% на каждую строку)

Берешь строку в локе с удалением, и по Switch строишь логику.
 
  • Спасибо
Реакции: Roman48
Вы бы лучше плешь проели @Zymlex надо ли лок в случае того примера, который привел я. У меня два варианта, либо он признает что не надо, либо нет ответа.
 
Вы бы лучше плешь проели @Zymlex надо ли лок в случае того примера, который привел я. У меня два варианта, либо он признает что не надо, либо нет ответа.
о чем речь? о блокировке Random? Если о нём, то там создаётся новый объект, его нет смысла блокировать, он свой для каждого потока будет.

Если специфика работы такая, что создание объекта и генерация случайной величины будет происходить очень часто - рандом может оказаться совсем не рандомным и генерировать одинаковые числа
 
  • Спасибо
Реакции: luk911
о чем речь? о блокировке Random? Если о нём, то там создаётся новый объект, его нет смысла блокировать, он свой для каждого потока будет.
ну наконец то Док большое спасибо, а то мучался спать не мог :)
теперь все встало на свои места.
 
  • Спасибо
Реакции: Mikhail B. и luk911
Может кому пригодится,

double percent = Double.Parse(project.Variables["..."].Value);
double doubPercent = percent / 100;

var rand = new Random();

if (rand.NextDouble() < doubPercent ) {

return true;

} else {

return false;

}
 
if(new Random().Next(100) >= 20)
throw new Exception("нет)");
 
Последнее редактирование:

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)