php sqrtで平方根を計算する

  • 作成日 2021.03.13
  • php
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