实现体重指数成绩的函数php,PHP:如何将数字提高到(微小)分数指数?

你最好的选择可能是使用泰勒系列扩展.正如您所指出的,PHP的bcpow仅限于提升整数取幂.

所以你可以做的就是滚动你自己的bc阶乘函数并使用wiki页面来实现指数函数的泰勒级数展开.

function bcfac($num) {

if ($num==0) return 1;

$result = '1';

for ( ; $num > 0; $num--)

$result = bcmul($result,$num);

return $result;

}

$mysum = '0';

for ($i=0; $i<300; $i++) {

$mysum = bcadd($mysum,bcdiv(bcpow($pow,$i),bcfac($i)) );

}

print $mysum;

显然,$i <300是无穷大的近似值...您可以根据自己的性能需求进行更改. $i = 20,我得到了 1.00000000000000000010842021724855044340662275184110560868263421994092888869270293594926619547803962155136242752708629105688492780863293090291376157887898519458498571566021915144483905034693109606778068801680332504212458366799913406541920812216634834265692913062346724688397654924947370526356787052264726969653983148004800229537555582281617497990286595977830803702329470381960270717424849203303593850108090101578510305396615293917807977774686848422213799049363135722460179809890014584148659937665374616 这是令人欣慰的,因为小的指数应该产生非常接近1.0的东西.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值