4

私のアプリケーション (PHP) では、多くの高精度の数学を実行する必要があります (合計 100 桁になる場合もあります)。

このフォーラムの最後の数回の投稿を通じて、BC Math や GMP などの高精度ライブラリを使用する必要があることがわかりました。これは、float 型は最大サイズが制限されているため、長いデータを処理できないためです。

私のアプリケーションは小数を必要とし、GMP は小数をサポートしていないため、BC Math を選択するのは明らかです。

パフォーマンスの観点から、現在最善のアプローチを見つけようとしています

ケース 1 : 数値演算の前に数値を確認する 結果が浮動制限を超える場合は、通常の方法で計算を実行し、BC 演算を実行して正確な結果を取得します

ケース 2 : 最初から BC Math を直接使用する

計算の 50% は高精度の数学を必要としないと仮定します。この場合、どちらが性能的に優れているでしょうか

提案してください

4

1 に答える 1

0

WolframAlpha を使用して、PHP では難しい数学の問題を計算しました。したがって、WolframAlpha は私たちのコンピューターから高速であり、インターネット接続があれば使用できます。最大数の根を計算する例です。そして結果はひどいです、それをチェックしてください。

<?php
    function pow_a($a,$b){
    $a = file_get_contents("http://www.wolframalpha.com/input/?i=$a"."%5E"."$b");
    if(preg_match_all('/first\sbtn\"\>\<a\shref\=\"(.*?)\"/', $a, $m))
        $b = file_get_contents("http://www.wolframalpha.com/input/".htmlspecialchars_decode($m[1][0]));
        if(preg_match_all("/\"stringified\"\:\s\"(.*?)\.\.\./i", $b, $k))
            return $k[1][0];
    }
    echo pow_a("9999999999999999999999999", "0.2222");
?>
于 2013-09-30T14:08:57.120 に答える