当前位置: 首页 > 后端技术 > PHP

30-SecondPHPSnippets(2)Math-Math

时间:2023-03-30 05:36:37 PHP

本文来自GitHub开源项目点我跳转到30-secondPHPSnippets精选的有用的PHPsnippets,你可以在30秒或更短的时间内理解这些碎片。数学函数average返回两个或多个数字的平均值。函数平均值(...$items){$count=count($items);返回$count===0?0:array_sum($items)/$count;}Examplesaverage(1,2,3);//2factorial(阶乘)计算一个数的阶乘。函数阶乘($n){如果($n<=1){返回1;}return$n*factorial($n-1);}Examplesfactorial(6);//720fibonacci(斐波那契数列)生成包含斐波那契数列,最多为第n个项目。函数fibonacci($n){$sequence=[0,1];对于($i=2;$i<$n;$i++){$sequence[$i]=$sequence[$i-1]+$sequence[$i-2];}return$sequence;}Examplesfibonacci(6);//[0,1,1,2,3,5]GCD(GreatestCommonDivisor)计算两个或多个数之间的最大公约数。函数gcd(...$numbers){if(count($numbers)>2){returnarray_reduce($numbers,'gcd');}$r=$numbers[0]%$numbers[1];返回$r===0?abs($numbers[1]):gcd($numbers[1],$r);}例子gcd(8,36);//4gcd(12,8,32);//4isEvenif如果给定的数字是偶数,则返回true,否则返回false。函数isEven($number){return($number%2)===0;}ExamplesEven(4);//trueisPrime检查提供的整数是否为素数。函数isPrime($number){$boundary=floor(sqrt($number));对于($i=2;$i<=$boundary;$i++){if($number%$i===0){returnfalse;}}返回$number>=2;}ExamplesPrime(3);//truelcm返回两个或多个数字的最小公倍数。函数lcm(...$numbers){$ans=$numbers[0];对于($i=1,$max=count($numbers);$i<$max;$i++){$ans=(($numbers[$i]*$ans)/gcd($numbers[$i],$ans));}返回$ans;}Exampleslcm(12,7);//84lcm(1,3,4,5);//60median返回数字数组的中值。函数中位数($numbers){排序($numbers);$totalNumbers=count($numbers);$mid=floor($totalNumbers/2);返回($totalNumbers%2)===0?($numbers[$mid-1]+$numbers[$mid])/2:$numbers[$mid];}Examplesmedian([1,3,3,6,7,8,9]);//6中位数([1,2,3,6,7,9]);//4.5maxN返回所提供数组中数字的最大数量。函数maxN($numbers){$maxValue=max($numbers);$maxValueArray=array_filter($numbers,function($value)use($maxValue){return$maxValue===$value;});返回计数($maxValueArray);}ExamplesmaxN([1,2,3,4,5,5]);//2maxN([1,2,3,4,5]);//1minN从提供的数字数组中返回最小值。函数minN($numbers){$minValue=min($numbers);$minValueArray=array_filter($numbers,function($value)use($minValue){return$minValue===$value;});返回计数($minValueArray);}ExamplesminN([1,1,2,3,4,5,5]);//2minN([1,2,3,4,5]);//1approximatelyEqual(近似相等)检查两个数近似相等。使用abs()比较两个值的绝对值与。省略第三个参数,以便使用默认值0.001。functionapproximatelyEqual($number1,$number2,$epsilon=0.001){returnabs($number1-$number2)<$epsilon;}ExamplesapproximatelyEqual(10.0,10.00001);//trueapproximatelyEqual(10.0,10.01);//falsenumclampNumber将放在边界值a和b指定的包含范围内。如果num在范围内,则返回num。否则,返回范围内最接近的数字。函数clampNumber($num,$a,$b){returnmax(min($num,max($a,$b)),min($a,$b));}ExamplesclampNumber(2,3,5);//3clampNumber(1,-1,-5);//-1相关文章:30秒PHP代码片段(一)Array-Array30秒PHP代码片段(3)String-String&Function-Function