<?php
$l = 4000;
function flip($h, $t)
{
if ($h + $t <= 29) {
$a = mt_rand(0, 1);
if ($a == 1) {
flip($h + 1, $t);
} else {
flip($h, $t + 1);
}
} else {
echo "$h,$t" . "</br>";
}
}
$ar = array( "test");
for ($i = 0; $i <= $l; $i++) {
array_push($ar, flip(0, 0));
}
?>
我的代码应该在旋转30次时给出尾部和头部的数量。这个过程完成了4000次。我想使用上面的代码将4000次的所有结果存储在一个数组中。但我认为我通过翻转定义的方式是错误的。我不知道如何在完成后存储翻转参数的值,因此我使用了回声。
当我运行此代码时...由于某种原因,它打印出所有答案:http://searchr.us/testing/ip.php而不是仅仅制作一个数组。我有针脚指出我采取翻转错误的vfilanl值的方式。有人能告诉我 echo ,打印之间的差异以及我如何使用return。当我只使用return(); echo.It给我一个错误。
请澄清我对如何输出这些值的疑问。
答案 0 :(得分:0)
你应该使用这样的东西:
<?php
function flip($h, $t)
{
if ($h + $t > 29) return $h . ',' . $t;
$a = mt_rand(0, 1);
return $a == 1 ? flip($h + 1, $t) : flip($h, $t + 1);
}
$ar = array( "test");
$l = 4000;
for ($i = 0; $i <= $l; ++$i) {
array_push($ar, flip(0, 0));
}
?>
请注意echo
输出到客户端。
但是,您希望决定在致电flip
时获得的内容,而这是使用return
完成的。