ホームページ > バックエンド開発 > PHPチュートリアル > PHPで数値の整数乗を実装する方法(コード例)

PHPで数値の整数乗を実装する方法(コード例)

不言
リリース: 2023-04-04 12:42:02
転載
2939 人が閲覧しました

この記事は、PHP が数値の整数べき乗をどのように実現するかについての内容です (コード例)。一定の参考値があります。困っている友人が参考になれば幸いです。それはあなたにとって役に立つでしょう。

double 型の浮動小数点数の基数と int 型の整数指数が与えられます。底の指数乗を求めます。

アイデア:

1. 10^6 乗の指数のバイナリ表現は、10^110 (バイナリ) 10^100 * 10^10 * 10^000=> を表すことができます。 ;10^4 * 10^2
2. シフト演算

while(n!=0){
    if((n&1)==1)
        res*=curr;
    curr*=curr;// 翻倍
    n>>=1;// 右移一位
}
ログイン後にコピー

<?php
function Power($base, $n){
    $res = 1;
        $curr = $base;
    $exponent;
    if($n>0){
        $exponent = $n; 
    }else if($n<0){
        if($base==0) return 0;
        $exponent = -$n;
    }else{// n==0
        return 1;// 0的0次方
    }   
    //$exponent转成二进制,有多少位就循环多少次,curr就执行n+1次方,如果当前位是1的就结果相乘
    while($exponent!=0){
        if(($exponent&1)==1)
            $res*=$curr;
        $curr*=$curr;// 翻倍
        //var_dump($curr);
        $exponent>>=1;// 右移一位
    }   
    return $n>=0?$res:(1/$res);//指数是负数的情况 
}

$a=Power(10,6);
var_dump($a);
~
ログイン後にコピー

以上がPHPで数値の整数乗を実装する方法(コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
php
ソース:cnblogs.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート