所以,我在这里有我的代码,它是一个我被挑战回答的数学问题,但是我无法让它工作。
PHP和JS代码都具有相同的逻辑,但产生了不同的答案。
http://dev.mattcowley.co.uk/main/dev/PRIVATE/Posers32/Q3.php
页面底部列出的脚本,顶部的问题。
问题: 如果n是从1到100随机选择的任何整数,那么1 ^ n + 2 ^ n + 3 ^ n + 4 ^ n可以被5整除的概率是多少?
逻辑: 循环通过1到100的数组,计算1 ^ n + 2 ^ n + 3 ^ n + 4 ^ n,mod 5,如果为0,则将1加到计数器
PHP:
#Range 1 - 100 Generated for testing
$nL = range(1, 100);
$m5 = 0;
foreach ($nL as $n) {
$nS = pow(1, $n) + pow(2, $n) + pow(3, $n) + pow(4, $n);
$nM = $nS % 5;
if ($nM == 0) {
$m5 += 1;
}
echo "n: ".$n."<br/>";
echo "n Sum: ".$nS."<br/>";
echo "n Mod5: ".$nM."<br/>";
echo "<br/>";
}
echo "<br/>Total Mod5 = 0 Count: ".$m5;
echo "<br/>Probability: ".(($m5/count($nL))*100)."%";
?>
JS:
//Range 1 - 100 Generated for testing
var nL = Array.apply(null, Array(101)).map(function (_, i) {return i;}); nL.shift();
var m5 = 0;
for (index = 0; index < nL.length; ++index) {
var n = nL[index];
var nS = Math.pow(1, n) + Math.pow(2, n) + Math.pow(3, n) + Math.pow(4, n);
var nM = nS % 5;
if (nM == 0) {
m5 += 1;
}
document.write("n: "+n+"<br/>");
document.write("n Sum: "+nS+"<br/>");
document.write("n Mod5: "+nM+"<br/>");
document.write("<br/>");
}
document.write("<br/>Total Mod5 = 0 Count: "+m5);
document.write("<br/>Probability: "+((m5/nL.length)*100)+"%");
</script>
请帮助&lt; 3