Mazliet palaboju priekš sevīm.
<?
function f($x,$payments,$amount,$split_months=false){
foreach($payments as $payment => $term){
$out+=$payment/pow(1+$x,$term/($split_months?12:365));
}
return $out-$amount;
}
$payments_arr=array(
"3.00"=>"0",
"25.18"=>"1",
"25.180"=>"2",
"25.1800"=>"3",
"25.18000"=>"4",
"25.180000"=>"5",
"25.1800000"=>"6",
"25.18000000"=>"7",
"25.180000000"=>"8",
"25.1800000000"=>"9",
"25.18000000000"=>"10",
"25.180000000000"=>"11",
"25.1800000000000"=>"12",
);
$amount=200;
$split_months=true;
$min=-999999999;
$max=999999999;
while(abs($max-$min)>0.000001){
$cur=($max+$min)/2;
$rez=f($cur,$payments_arr,$amount,$split_months);
if ($rez<0) $max=$cur; else $min=$cur;
}
echo $cur*100;
Ja $payments_arr masīvā būs vienāds key skaitlis, tad x neatradīs. Kā šo varētu izlabot?