Алгоритм выпадения случайной вещи

291
04 августа 2017, 01:47

Добрый день! Недавно возник вопрос, как реализован алгоритм выпадения вещей на всяких сs go рулетках, там где открывают ящики с вещами? Мучает он меня уже несколько дней, так и не могу понять, как это может работать. Кто что знает? Направьте пожалуйста туда, где можно об этом почитать.

Самый простой вариант как по мне вот такой:

  1. Берем определенное кол-во типов вещей(в зависимости от их цены) к примеру их оказалось у нас 3
  2. По ценам 1 - 10р , 2 - 25, 3 - 140р.

  3. Устанавливаем цену для одной попытки открытия к примеру цена 20 р.

  4. Теперь можно составить из них какую-то последовательность, к примеру положить их в массив да так чтобы вещей с типом 1 было например 100 шт, вещей с типом 2 было 15 шт, а вещей с типом 3 - 2 шт.
  5. Располагаем элементы последовательности в случайном порядке.
  6. Когда пользователь открывает кейс, то генерируется псевдослучайное число.

Кажется этот вариант не так и плох, ведь увеличивая кол-во элементов цена которых дешевле чем цена открытия кейсов мы можем регулировать шанс выпадения вещей которые дороже. Но всегда есть вероятность того, что пользователь при первом открытии получит вещь с типом 3

Как убрать этот недостаток?

Answer 1

Я понял вас (вроде-бы :D), я когда-то тоже думал насчёт того как делать что-то редким в обычном рандоме, я короче придумал такой алгоритм (на мой взгляд проще не предумаешь) :

  1. Взять 3 вещи
  2. Сделать обычный random (например от 0 до 10, можно делать хоть какой диапазон)
  3. Потом обычным switch'ем (или несколькими if'ами) сделать так :
    • если число от 0..5 то выпадает первая вещь
    • если от 5..8 то вторая (естественно которая дороже)
    • а если от 8..10 то самая дорогая

Профит... )

READ ALSO
Visual Studio Code PHP Документация

Visual Studio Code PHP Документация

Есть ли возможность нормально подсвечивать документацию по функциям в Visual Studio Code? На данный момент, intellisense умеет только подсветить все, что...

244
При чтение pdf файла в php выводит кракозябры

При чтение pdf файла в php выводит кракозябры

Есть pdf файл, есть библиотека для чтения smalot/pdfparser

209
Помогите разобраться с синтаксисом php в WordPress

Помогите разобраться с синтаксисом php в WordPress

Мне нужно проверять пост по его типу и если он совпадает - выводить определенный шаблон

141
Ошибка в *.tli файле

Ошибка в *.tli файле

Ошибка в строке return _result;

327