30秒的PHP代码片段-MATH
生活随笔
收集整理的這篇文章主要介紹了
30秒的PHP代码片段-MATH
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
本文來自GitHub開源項目
點我跳轉
30秒的PHP代碼片段
?
精選的有用PHP片段集合,您可以在30秒或更短的時間內理解這些片段。數(shù)學函數(shù)
average
返回兩個或多個數(shù)字的平均值。
function average(...$items) { $count = count($items); return $count === 0 ? 0 : array_sum($items) / $count; }Examples
average(1,?2,?3);?// 2factorial(階乘)
計算一個數(shù)的階乘。
function factorial($n) { if ($n <= 1) { return 1; } return $n * factorial($n - 1); }Examples
factorial(6);?// 720fibonacci(斐波那契數(shù)列)
生成包含斐波那契數(shù)列的數(shù)組,直到第n項。
function fibonacci($n) { $sequence = [0, 1]; for ($i = 2; $i < $n; $i++) { $sequence[$i] = $sequence[$i-1] + $sequence[$i-2]; } return $sequence; }Examples
fibonacci(6);?// [0, 1, 1, 2, 3, 5]GCD(最大公約數(shù))
計算兩個或多個數(shù)之間的最大公約數(shù)。
function gcd(...$numbers) { if (count($numbers) > 2) { return array_reduce($numbers, 'gcd'); } $r = $numbers[0] % $numbers[1]; return $r === 0 ? abs($numbers[1]) : gcd($numbers[1], $r); }Examples
gcd(8, 36); // 4 gcd(12, 8, 32); // 4isEven
如果給定的數(shù)字是偶數(shù),則返回true,否則返回false。
function isEven($number) { return ($number % 2) === 0; }Examples
isEven(4);?// trueisPrime
檢查提供的整數(shù)是否是素數(shù)。
function isPrime($number) { $boundary = floor(sqrt($number)); for ($i = 2; $i <= $boundary; $i++) { if ($number % $i === 0) { return false; } } return $number >= 2; }Examples
isPrime(3);?// truelcm
返回兩個或多個數(shù)字的最小公倍數(shù)。
function lcm(...$numbers) { $ans = $numbers[0]; for ($i = 1, $max = count($numbers); $i < $max; $i++) { $ans = (($numbers[$i] * $ans) / gcd($numbers[$i], $ans)); } return $ans; }Examples
lcm(12, 7); // 84 lcm(1, 3, 4, 5); // 60median
返回數(shù)字數(shù)組的中間值。
function median($numbers) { sort($numbers); $totalNumbers = count($numbers); $mid = floor($totalNumbers / 2); return ($totalNumbers % 2) === 0 ? ($numbers[$mid - 1] + $numbers[$mid]) / 2 : $numbers[$mid]; }Examples
median([1, 3, 3, 6, 7, 8, 9]); // 6 median([1, 2, 3, 6, 7, 9]); // 4.5maxN
從提供的數(shù)組中返回最大的數(shù)的個數(shù)。
function maxN($numbers) { $maxValue = max($numbers); $maxValueArray = array_filter($numbers, function ($value) use ($maxValue) { return $maxValue === $value; }); return count($maxValueArray); }Examples
maxN([1, 2, 3, 4, 5, 5]); // 2 maxN([1, 2, 3, 4, 5]); // 1minN
從提供的數(shù)組中返回最小的數(shù)的個數(shù)。
function minN($numbers) { $minValue = min($numbers); $minValueArray = array_filter($numbers, function ($value) use ($minValue) { return $minValue === $value; }); return count($minValueArray); }Examples
minN([1, 1, 2, 3, 4, 5, 5]); // 2 minN([1, 2, 3, 4, 5]); // 1approximatelyEqual(約等于)
檢查兩個數(shù)字是否近似相等。使用abs()將兩個值的絕對值與進行比較。省略第三個參數(shù),以便使用默認值0.001。
function approximatelyEqual($number1, $number2, $epsilon = 0.001) { return abs($number1 - $number2) < $epsilon; }Examples
approximatelyEqual(10.0, 10.00001); // true approximatelyEqual(10.0, 10.01); // falseclampNumber
將num放在邊界值a和b指定的包含范圍內。如果num在該范圍內,則返回num。否則,返回該范圍內最近的數(shù)字。
function clampNumber($num, $a, $b) { return max(min($num, max($a, $b)), min($a, $b)); }Examples
clampNumber(2, 3, 5); // 3 clampNumber(1, -1, -5); // -1轉載于:https://www.cnblogs.com/gongchixin/articles/10395516.html
總結
以上是生活随笔為你收集整理的30秒的PHP代码片段-MATH的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 炉石传说新版本佣兵模式恩佐斯怎么构筑卡组
- 下一篇: 男生故意拿球打女生头是为什么? 财