30秒的PHP代码片段(2)数学 - Math
本文来自GitHub开源项目
点我跳转
30秒的PHP代码片段
精选的有用PHP片段集合,您可以在30秒或更短的时间内理解这些片段。
数学函数
average
返回两个或多个数字的平均值。
function average(...$items)
{$count = count($items);return $count === 0 ? 0 : array_sum($items) / $count;
}
Examples
average(1, 2, 3); // 2
factorial(阶乘)
计算一个数的阶乘。
function factorial($n)
{if ($n <= 1) {return 1;}return $n * factorial($n - 1);
}
Examples
factorial(6); // 720
fibonacci(斐波那契数列)
生成包含斐波那契数列的数组,直到第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(最大公约数)
计算两个或多个数之间的最大公约数。
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); // 4
isEven
如果给定的数字是偶数,则返回true
,否则返回false
。
function isEven($number)
{return ($number % 2) === 0;
}
Examples
isEven(4); // true
isPrime
检查提供的整数是否是素数。
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); // true
lcm
返回两个或多个数字的最小公倍数。
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); // 60
median
返回数字数组的中间值。
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.5
maxN
从提供的数组中返回最大的数的个数。
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]); // 1
minN
从提供的数组中返回最小的数的个数。
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]); // 1
approximatelyEqual(约等于)
检查两个数字是否近似相等。使用abs()将两个值的绝对值与进行比较。省略第三个参数,以便使用默认值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); // false
clampNumber
将num
放在边界值a
和b
指定的包含范围内。如果num
在该范围内,则返回num
。否则,返回该范围内最近的数字。
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
相关文章:
30秒的PHP代码片段(1)数组 - Array
30秒的PHP代码片段(3)字符串-String & 函数-Function
30秒的PHP代码片段(2)数学 - Math相关推荐
- 30秒的PHP代码片段(3)字符串-String 函数-Function
本文来自GitHub开源项目 点我跳转 30秒的PHP代码片段 精选的有用PHP片段集合,您可以在30秒或更短的时间内理解这些片段. 字符串 endsWith 判断字符串是否以指定后缀结尾,如果以指定 ...
- 30秒的PHP代码片段-MATH
本文来自GitHub开源项目 点我跳转 30秒的PHP代码片段 精选的有用PHP片段集合,您可以在30秒或更短的时间内理解这些片段. 数学函数 average 返回两个或多个数字的平均值. funct ...
- 30秒的PHP代码片段(1)数组 - Array
本文来自GitHub开源项目 点我跳转 30秒的PHP代码片段 精选的有用PHP片段集合,您可以在30秒或更短的时间内理解这些片段. 排列 all 如果所提供的函数返回 true 的数量等于数组中成员 ...
- web简易计算器代码_30秒内便能学会的30个超实用Python代码片段
许多人在数据科学.机器学习.web开发.脚本编写和自动化等领域中都会使用Python,它是一种十分流行的语言. Python流行的部分原因在于简单易学. 本文将简要介绍30个简短的.且能在30秒内掌握 ...
- 超实用的30 个简短的代码片段(一)
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:NicePython PS:如有需要Python学习资料的小伙伴可以加 ...
- 30秒内便能学会的30个超实用Python代码片段
许多人在数据科学.机器学习.web开发.脚本编写和自动化等领域中都会使用Python,它是一种十分流行的语言. Python流行的部分原因在于简单易学. 本文将简要介绍30个简短的.且能在30秒内掌握 ...
- 第十一期:30秒内便能学会的30个实用Python代码片段
许多人在数据科学.机器学习.web开发.脚本编写和自动化等领域中都会使用Python,它是一种十分流行的语言. Python流行的部分原因在于简单易学. 本文将简要介绍30个简短的.且能在30秒内掌握 ...
- 30个超实用Python代码片段
版权声明:本文为博主'读芯术'原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 原文链接:https://blog.csdn.net/duxinshuxiaobia ...
- 即学即用的30段Python实用代码
(图片付费下载自视觉中国) 原标题 | 30 Helpful Python Snippets That You Can Learn in 30 Seconds or Less 作 者 | Fatos ...
最新文章
- matlab图像处理命令(一)
- 集员法对3D激光雷达和相机的外部校准
- jquery 悬浮验证框架 jQuery Validation Engine
- 数组---进制转换(查表法)
- 基于redis实现的扣减库存
- 02Framelayout:帧布局
- Tensorflow中的RNN个人备忘
- 词法分析与语法分析简介
- TFS2010中如何添加用户
- python_sklearn层次聚类学习
- VC 使用msxml6.dll动态链接库中的函数读写XML文件
- word快速切换多个文件窗口
- Linux查看机器的运行情况
- 防水测试设备的应用领域
- akoj-1170-国王的魔镜
- 51单片机实验之流水灯和交替闪烁
- P2327 [SCOI2005]扫雷(递推)
- Spark学习痛点和路线图
- 1.2医学统计学的作用
- 聊聊荣耀30S 5G手机到底值不值得买?
热门文章
- 修复“-bash: locate: command not found”
- Winform开发框架中工作流模块之审批会签操作
- 一分钟让你快速了解红外气体传感器作用,特性及应用
- 图像偏色检测算法,速度快,效果好,共享给大家。
- itoa函数的实现(不同进制)
- 动态性能视图v$lock访问很慢的解决办法
- python文本操作
- 徐科:做IC不外乎PPA,但需要成百上千的专家合作 投入数千万
- javascript设计模式与开发实践(二)- 封装和原型模式
- 兼容性—IE6/7下带有overflow:hidden属性的父级元素包不住带有position:relative属性的子元素...