Php 如何添加随机“;fuzz”;对于这个公式,随机性会随着值的增加而减小吗?

Php 如何添加随机“;fuzz”;对于这个公式,随机性会随着值的增加而减小吗?,php,math,logarithm,random,Php,Math,Logarithm,Random,我正在开发一个开放式战略游戏。我使用以下公式计算损坏: $rand = rand($a, $b) + $c; $damage = $rand * sqrt(($d / 20) * $c)); $a、$b、$c和$d都是用户在游戏过程中可以修改的值,用户可以通过购买更好的物品($a和$b),投资该物品($c),或投资其角色$d 我现在想做的是给方程的结果增加一点随机性。但是,由于游戏是开放式的: 随着时间的推移,静态值将变得不可见/可忽略 基于百分比的值将允许随着时间的推移出现过多的噪波 所以,

我正在开发一个开放式战略游戏。我使用以下公式计算损坏:

$rand = rand($a, $b) + $c;
$damage = $rand * sqrt(($d / 20) * $c));
$a
$b
$c
$d
都是用户在游戏过程中可以修改的值,用户可以通过购买更好的物品(
$a
$b
),投资该物品(
$c
),或投资其角色
$d

我现在想做的是给方程的结果增加一点随机性。但是,由于游戏是开放式的:

  • 随着时间的推移,静态值将变得不可见/可忽略
  • 基于百分比的值将允许随着时间的推移出现过多的噪波

  • 所以,我想添加一个随机值,它一开始很小,随着输入的增加而增加,但回报却在减少。我肯定我需要某种对数公式,但我不知道该怎么做

    如果你计算你的原始伤害,因为D和R在[-1,1]中是随机的,你有很多选择。您不想要静态:

    D = D + 1 * constant * R
    
    或百分比

    D = D + D * constant * R.
    
    介于两者之间的可能是

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

    D在常数和线性之间的任何函数都会给你一个不同的平衡。

    如果你在[-1,1]中计算你的原始伤害,因为D和R是随机的,你有很多选择。您不想要静态:

    D = D + 1 * constant * R
    
    或百分比

    D = D + D * constant * R.
    
    介于两者之间的可能是

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

    常数和线性之间的任何D函数都会给你一个不同的平衡。

    通过
    兰德
    $a
    $b
    之间的随机性是否足够?你还想找什么?@ircmaxell我应该解释一下,有时候
    $a
    $b
    之间只有1或2个整数。此功能产生的可能损坏值总数与
    $a
    $b
    值之间的整数数有关。因此,比如说
    12
    13
    ,返回的伤害是相当稳定的。通过
    rand
    $a
    $b
    之间的随机性不够吗?你还想找什么?@ircmaxell我应该解释一下,有时候
    $a
    $b
    之间只有1或2个整数。此功能产生的可能损坏值总数与
    $a
    $b
    值之间的整数数有关。因此,比如说
    12
    13
    ,返回的伤害相当稳定。