我正在尝试在php中实现BBP算法。我的代码返回一个小数,我认为它是奇数,因为它应该是十六进制。我被告知通过乘以16从十六进制转换为十进制,但现在它只是错误。这是一个示例:
$n1=$n2=$n3=$n4=$n5=$n6=$n7=$n8 =0;
$S1=$S2=$S3=$S4=$S5=$S6=$S7=$S8 = 0; //initializing
$k = 0;
$m1= 8*$k + 1;
$m2 = 8*$k + 4;
$m3 = 8*$k + 5;
$m4 = 8*$k = 6;
$b =16;
$e=$n-$k;
while($k<$n){ //Sum 1 of 8
$S1 +=Modular($b, $m1, $e)/$m1; //see Moduler_Expansion.php
$k++;
}
$k = $n +1; //redefine for second sum, and every other
while($k<$limit){ //Sum 2 of 8
$S2 += (pow($b,$n-$k))/($m1);
$k++; //now repeat similar process for each sum.
}
然后我重复BBP每个学期的过程:
$S = 4*($S1 + $S2) - 2*($S3+$S4) -($S5+$S6) - ($S7+$S8);
` 在维基页面之后,我然后剥离整数并乘以16,但是对于$ k = 0,我得到; 3.4977777777778 并且对于$ k = 1:7.9644444444448。
我不认为这些是正确的,它可能只是我不知道如何正确地解释输出。有人可以提供任何建议吗?