Как можно реализовать шанс выполнения какого-либо действия?
Например есть 3 действия и к ним заданы следующие шансы:
1. 20%
2. 40%
3. 60%
Как выбрать случайное действие?
Есть идея сложить все шансы, получится 20+40+60=120, потом через rand выбрать случайное значение из 120, и какая цифра выпадет - то действие и будет. Но если будет какое-либо действие с 100% шансом стоять, то такой метод не подойдет... подскажите как лучше сделать?
Вы зря указываете проценты, это не корректно. 20, 40, 60 - это просто множители вероятности попадания. Так что даже если будет 20, 40, 60, 100 - это проблемой не будет. Считаете rand(0, 20+40+60+100), далее определяете в какие пределы попало число.
Да, скорее всего у него путаница и возникает из за этого. Он проценты указывает как для независимых событий, а работать с ними хочет как с полной группой.