[英]How I can create my own pow function using PHP?
我想創建一個函數,其中我放置兩個值(值及其功率 - 示例函數: multiply(3, 3)
結果27
)。 到目前為止我已經嘗試但失敗了,我使用谷歌進行了搜索,但我找不到任何結果,因為我不知道這個函數的名稱。
我想要的完全是:
3,3 => 3 x 3 x 3 = 27
4,4 => 4×4×4×4 = 256
我嘗試了什么:
function multiply($value,$power){
for($x = 1; $x <= $value; $x++ ){
return $c = $value * $power;
}
}
echo multiply(3,3);
答案已被接受,但我不得不來這里說這里的所有答案都使用了一個糟糕的算法。 有更好的。 包括非常簡單的那些,例如通過平方取冪 ,將復雜度從O(功率)降低到O(log(功率))。
這個想法是在將指數除以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";
Oopsika,不可能問一個更明顯的問題。 使用名為pow的內置函數(如許多語言)
echo pow(3, 3);
編輯
讓我們創建自己的功能。
function raiseToPower($base,$exponent)
{
// multiply the base to itself exponent number of times
$result=1;
for($i=1;$i<=$exponent;$i++)
{
$result = $result * $base;
}
return $result;
}
function exponent($value,$power)
{
$c=1;
for($x = 1; $x <= $power; $x++ )
{
$c = $value * $c;
}
return $c;
}
$ a ** $ b Exponentiation將$ a籌集到$ b'th權力的結果。
echo 2 ** 3;
數字pow(數字$ base,數字$ exp)
echo pow(2, 3);
function multiply($value, $power) {
$result = 1;
for($x = 1; $x <= $power; $x++){
$result *= $value;
}
return $result;
}
echo multiply(3,3);
閱讀更多:
只是嘗試運行此代碼我希望您的問題將得到解決。 如果定義任何函數,則必須將其稱為返回值。
<?php
function multiply($value,$exp)
{ $temp=1;
if($exp==0)
return $temp;
else
{
for($i=1;$i<=$exp;$i++)
$temp=$temp*$value;
return $temp;
}
}
echo multiply(5,6);
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.