如何在PHP中生成0到1之间的随机浮点数?
我正在寻找与Java相当的PHP Math.random().
我需要一个PHP函数,生成与javascript Math.random()相同的种子相同的随机数.
关于math.random()的MDN:
随机数生成器从当前时间播种,如在Java中.
到目前为止我尝试了PHP的rand()生成类似的东西:
srand( time() ); // I use time as seed, like javascript does
echo rand();
Output: 827382
Run Code Online (Sandbox Code Playgroud)
并且javascript似乎以自己的方式生成随机数:
Math.random(); Output: 0.802392144203139
Run Code Online (Sandbox Code Playgroud)
我需要与math.random()等效的PHP代码,而不是新的javascript代码.我无法改变javascript.
我一直在使用PHP进行虚拟股票市场游戏.我用来决定股票价格的公式是
$price += $ran*0.001*$price + $ratio*0.005*$price
Run Code Online (Sandbox Code Playgroud)
哪里
$ran = rand(-1*$intensity, 2*$intensity)
Run Code Online (Sandbox Code Playgroud)
$ intensity是介于-5到5之间的数字,具体取决于新闻对公司的好坏
$ratio = (1.0*($buy-$sell))/($buy + $sell)
Run Code Online (Sandbox Code Playgroud)
$ buy和$ sell分别代表一家公司买卖的股票数量.
这个公式的问题在于,即使强度为负(甚至-5),比率项也总是加到使总体术语增加的价格上.价格每10秒更新一次,上面的公式会继续增加价格,永不降价.那么,任何人都可以帮我解决这个公式,使其与实际股票市场的关系更加密切吗?
我有一个代码,通过以下代码初始化骰子对象:
public function initializeDiceSides($totalSides, $fair, $maxProbability = 100) {
$maxTemp = $maxProbability;
$sides = array();
for ($side = 0; $side < $totalSides; $side++) {
//if we want fair dice just generate same probabilities for each side
if ($fair === true) {
$probability = number_format($maxProbability/$totalSides, 5);
} else {
//set probability to random number between 1 and half of $maxTemp
$probability = number_format(mt_rand(1, $maxTemp/2), 5);
//subtract probability of current side from maxtemp
$maxTemp= $maxTemp- $probability;
$sides[$side] = $probability;
}
}
echo …Run Code Online (Sandbox Code Playgroud)