Mod 5在PHP和PHP中产生不同的答案。 JS,有时两个都错了

时间:2016-01-26 15:08:31

标签: javascript php modulo

所以,我在这里有我的代码,它是一个我被挑战回答的数学问题,但是我无法让它工作。

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

0 个答案:

没有答案