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

Roman48

Client
Регистрация
28.02.2016
Сообщения
2 058
Благодарностей
746
Баллы
113
С чего ты взял)) Так не должно быть. Это вероятность, ее нельзя предсказать. Снипет работает, проверил.

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

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 440
Благодарностей
5 459
Баллы
113
Как можно еще очередность прикрутить. Вот например 10 раз выполнить шаблон, из них 7 на лево и 3 на право?
Только списками (наверно)
3 строки да,
7 строк нет

или наоборот.
 

Roman48

Client
Регистрация
28.02.2016
Сообщения
2 058
Благодарностей
746
Баллы
113

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 440
Благодарностей
5 459
Баллы
113
  • Спасибо
Реакции: Roman48

Roman48

Client
Регистрация
28.02.2016
Сообщения
2 058
Благодарностей
746
Баллы
113

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 440
Благодарностей
5 459
Баллы
113
Не буду я наверно, усложнять, сделаю себе три настройки, на лево, на право, и рандом, но все же интересно что суда писать?
Да
Нет
Рандом
(количество сам выбирай, 10 записей сделай и это будет значит 10% на каждую строку)

Берешь строку в локе с удалением, и по Switch строишь логику.
 
  • Спасибо
Реакции: Roman48

luk911

Client
Регистрация
17.01.2013
Сообщения
1 542
Благодарностей
579
Баллы
113
Вы бы лучше плешь проели @Zymlex надо ли лок в случае того примера, который привел я. У меня два варианта, либо он признает что не надо, либо нет ответа.
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 685
Благодарностей
4 642
Баллы
113
Вы бы лучше плешь проели @Zymlex надо ли лок в случае того примера, который привел я. У меня два варианта, либо он признает что не надо, либо нет ответа.
о чем речь? о блокировке Random? Если о нём, то там создаётся новый объект, его нет смысла блокировать, он свой для каждого потока будет.

Если специфика работы такая, что создание объекта и генерация случайной величины будет происходить очень часто - рандом может оказаться совсем не рандомным и генерировать одинаковые числа
 
  • Спасибо
Реакции: luk911

luk911

Client
Регистрация
17.01.2013
Сообщения
1 542
Благодарностей
579
Баллы
113
о чем речь? о блокировке Random? Если о нём, то там создаётся новый объект, его нет смысла блокировать, он свой для каждого потока будет.
ну наконец то Док большое спасибо, а то мучался спать не мог :-)
теперь все встало на свои места.
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 685
Благодарностей
4 642
Баллы
113
  • Спасибо
Реакции: Mikhail B. и luk911

Dobriyk0t

Client
Регистрация
28.12.2016
Сообщения
89
Благодарностей
45
Баллы
18
Может кому пригодится,

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

var rand = new Random();

if (rand.NextDouble() < doubPercent ) {

return true;

} else {

return false;

}
 

Dr.Pipetka

Client
Регистрация
12.12.2017
Сообщения
1 315
Благодарностей
869
Баллы
113
if(new Random().Next(100) >= 20)
throw new Exception("нет)");
 
Последнее редактирование:

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