Как добавить случайную "пушицу" в эту формулу, чтобы случайность уменьшалась по мере увеличения значений?

75
5

Я разрабатываю стратегию с открытым исходным кодом. Я использую следующую формулу для расчета ущерба:


$rand = rand($a, $b) + $c;
$damage = $rand * sqrt(($d / 20) * $c));

$a, $b, $c и $d - все значения, которые могут быть изменены пользователем в ходе игры либо путем покупки лучшего товара ($a и $b), инвестируя в элемент ($c) или инвестируя в свой характер $d.


Теперь я хочу добавить немного случайности к результату уравнения. Однако, поскольку игра открыта:


    статическое значение станет незаметным/пренебрежимым с течением времени.
    процентное значение допускает слишком много шума с течением времени.

Итак, я хочу добавить случайное значение, которое вначале небольшое, растет с увеличением ввода, но уменьшает отдачу. Я уверен, что мне нужна какая-то логарифмическая формула, но я не уверен, как это сделать!

спросил(а) 2021-01-19T15:18:49+03:00 2 месяца, 3 недели назад
1
Решение
96

Если вы рассчитываете свой первоначальный урон, так как D и R являются случайными в [-1,1], у вас есть много вариантов. Вы не хотели статических:


D = D + 1 * constant * R

или процент


D = D + D * constant * R.

Что-то между ними может быть


D = D + sqrt(D) * constant * R.

Любая функция D между постоянной и линейной даст вам другой баланс.

ответил(а) 2021-01-19T15:18:49+03:00 2 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема