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
,返回的伤害相当稳定。