gpt4 book ai didi

php - 如何使用 PHP 创建自己的 pow 函数?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:25:52 27 4
gpt4 key购买 nike

我想创建一个函数,在其中放入两个值(值及其幂 - 示例函数:multiply(3, 3) 结果 27)。到目前为止,我尝试过但失败了,我使用 Google 进行了搜索,但我找不到任何结果,因为我不知道该函数的名称。

我想要的是:

3,3 => 3 x 3 x 3 = 27
4,4 => 4 x 4 x 4 x 4 = 256

我尝试过的:

function multiply($value,$power){
for($x = 1; $x <= $value; $x++ ){
return $c = $value * $power;
}
}
echo multiply(3,3);

最佳答案

答案已经被接受了,但我不得不来这里说这里所有的答案都使用了糟糕的算法。还有更好的。包括非常简单的,比如 exponentiation by squaring将复杂度从 O(power) 降低到 O(log(power))。

想法是在将指数除以 2 的同时对底进行平方。例如

3^8 = 9^4 = 81^2 = 6561

指数为奇​​数时有一种特殊情况。在这种情况下,您必须存储一个单独的变量来表示这个因素:

2^10 = 4^5 = 16^2 * 4 = 256 * 4 = 1024

PHP 不是我的强项之一,但最终的算法很简单:

function multiply($value, $power){
$free = 1;
while ($power > 1) {
if ($power % 2 == 1)
$free *= $value;
$value *= $value;
$power >>= 1; //integer divison by 2
}
return $value*$free;
}
echo multiply(3, 3) . "\n";
echo multiply(2, 10) . "\n";
echo multiply(3, 8) . "\n";

关于php - 如何使用 PHP 创建自己的 pow 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29465808/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com