Я пытаюсь реализовать алгоритм BBP в php. Мой код возвращает десятичную дробь, которая, как мне показалось, была странной в шестнадцатеричном виде. Мне сказали преобразовать в десятичную из шестнадцатеричного числа, умножая также на 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.
Я не думаю, что это правильно, просто я не знаю, как правильно интерпретировать результат. Кто-нибудь может дать совет?
Задача ещё не решена.
Других решений пока нет …