php sqrtで平方根を計算する

phpで、sqrtを使用して、平方根を計算するサンプルコードを記述してます。phpのバージョンは8.0です。
環境
- OS CentOS Stream release 8
- php 8.0.0
- nginx 1.14.1
sqrt使い方
sqrtを使用すれば、平方根を計算することが可能です。
sqrt(数値);
以下は、平方根を計算するサンプルコードとなります。
<?php
echo sqrt(4) . PHP_EOL;
// 2
echo sqrt(1.21) . PHP_EOL;
// 1.1
echo sqrt(2) . PHP_EOL;
// 1.4142135623731
「-」を指定すると「NAN」が返ります。
<?php
echo sqrt(-2) . PHP_EOL;
// NAN
gmpをインストールしていれば、gmp_sqrtでも平方根を計算できますが、返ってくる値は、整数部のみとなります。
<?php
echo gmp_sqrt(4) . PHP_EOL;
// 2
echo gmp_sqrt(1.21) . PHP_EOL;
// 1
echo gmp_sqrt(2) . PHP_EOL;
// 1
echo gmp_sqrt(-2) . PHP_EOL;
// PHP Fatal error: Uncaught ValueError: gmp_sqrt(): Argument #1 ($num) must be greater than or equal to
パフォーマンスは、「sqrt」の方が良さそうです。
【参考】 それぞれ、同じ計算を1000万回行った結果
測定結果 : sqrt
process time: 2.38793 ミリ秒
測定結果 : gmp_sqrt
process time: 3.54233 ミリ秒
また、gmp_sqrtremを使用すると、余り付きで平方根を求めることが可能です。
<?php
$arr = gmp_sqrtrem(4);
echo $arr[0].PHP_EOL; // 2
echo $arr[1].PHP_EOL; // 0
$arr = gmp_sqrtrem(5);
echo $arr[0].PHP_EOL; // 2
echo $arr[1].PHP_EOL; // 1
-
前の記事
javascript parentNodeで親ノードを取得する 2021.03.13
-
次の記事
React.js ライブラリ「react-gridsheet」を使ってgoogleスプレッドシート風のUIを作成する 2021.03.13
コメントを書く