PHP에 내장된 수학 함수를 사용하여 삼각법, 난수 생성 등을 살펴보세요.

WBOY
풀어 주다: 2023-09-01 21:34:01
원래의
983명이 탐색했습니다.

기본 수학은 프로그래밍 과정에서 광범위하게 사용됩니다. 코드를 작성할 때 서로 다른 값을 비교하고, 더하고, 곱하고, 빼고, 나누어야 하는 경우가 많습니다.

때때로 프로그램에 필요한 수학이 더 많이 포함될 수 있습니다. 로그, 삼각 함수 또는 지수 함수를 사용해야 할 수도 있습니다. 이 튜토리얼에서는 예제를 통해 PHP의 각 기능을 사용하는 방법에 대해 설명합니다.

이 튜토리얼에서는 삼각법, 지수 및 로그 계산을 수행하기 위해 PHP에 내장된 수학 함수를 소개합니다. 또한 반올림과 난수 생성에 대해서도 살펴보겠습니다.

PHP의 삼각 함수

sin($angle)cos($angle)计算以弧度给出的不同角度的正弦、余弦和正切值,以及tan($angle).它们都返回float값을 사용하여 라디안 단위의 각도 측정값을 전달할 수 있습니다.

단순히 계산하면tan(45)时,您不会得到 1 作为输出,因为您实际上将计算 45 弧度处的切线值,约为 2,578度。幸运的是,PHP 有两个非常有用的函数,用于将弧度转换为角度,反之亦然。这些函数是rad2deg()deg2rad()。因此,如果您确实想计算 45 度的正切值,则必须编写tan(deg2rad(45))이라는 의미입니다.

cosec()sec()的值cot().但是,这些值只是sin()cos()tan()의 역수를 계산하는 직접적인 PHP 함수가 없으므로 해당 값을 간접적으로 계산할 수 있다는 점은 주목할 가치가 있습니다.

역연산을 수행하여 특정 값을 갖는 삼각형의 각도를 계산할 수도 있습니다. 이러한 함수를asin()acos()atan()。您必须记住的一件事是,对于任何角度,sin 和 cos 的值都不能超出 -1 到 1 的范围。这意味着asin()acos()이라고 하며 -1에서 1 사이의 값만 유효한 인수로 받아들일 수 있습니다. 이 범위를 벗어나는 값은 NaN을 제공합니다.

삼각법에는 발사체의 궤적이나 다양한 물체의 높이와 거리를 결정하는 등 다양한 응용 분야가 있으므로 이러한 상황을 시뮬레이션하는 코드를 작성하는 경우 이러한 기능에 액세스하는 것이 확실히 도움이 될 것입니다.

이 기능은 방사형 및 각도 값을 사용하여 다양한 요소를 그리려는 경우에도 유용합니다. 더 큰 원을 중심으로 일정한 거리에 원 패턴을 그리고 싶다고 가정해 보겠습니다. Envato Tuts+에서 PHP GD 모양 튜토리얼을 읽었다면 어떤 모양을 그리려면 x, y 좌표 형태로 좌표를 전달해야 하지만 극좌표를 사용하여 원형 패턴을 그리는 것이 더 쉽다는 것을 기억할 것입니다.

이 경우 이러한 삼각 함수를 사용하면sin()cos()극좌표를 데카르트 형식으로 변환하여 원하는 그래프를 그리는 데 도움이 됩니다. 예는 다음과 같습니다.

으아악

아래 이미지는 위 PHP 코드의 최종 결과를 보여줍니다.

使用 PHP 的内置数学函数探索三角学、随机数生成等

지수 및 로그 함수

PHP에는 지수 및 로그 함수도 있습니다.exp($value)函数将返回常量e的 float$value次方。同样,您可以使用log($arg, $base)函数计算给定数字对任意底数的对数。如果省略$base,将使用自然底数e计算对数。如果你想计算一个数字以10为底的对数,你可以简单地使用函数log10($arg).

유용할 수 있는 또 다른 함수는pow($base, $exp),它返回$base$exp.有些人可能更喜欢使用**运算符。表达式$a**$b将给出与pow($a, $b)相同的结果。但是,在某些情况下,使用$a**$b可能会得到不正确的结果。例如,-1**0.5将为您提供-1,这是不正确的。使用pow(-1, 0.5)동일한 표현식을 평가하면 올바른 값 NaN이 제공됩니다.

로그인 후 복사

其他有用的数学函数

四舍五入数字

还有许多其他重要的数学函数。您可以使用ceil(float $value)函数将分数或小数四舍五入到最接近的整数。这会将 2.1 和 2.9 转换为 3。同样,您可以使用floor(float $value)函数将分数或小数舍入为最接近的整数。它将把 2.1 和 2.9 都更改为 2。

这些函数有助于轻松地对不同计算的结果进行舍入。假设您需要知道大厅可容纳多少人(根据其面积)。除法后的最终答案很可能是一个十进制数,但你不能将人分成分数,因此正确的答案将是计算值的下限值。

您经常需要将数字向上或向下舍入为最接近的整数。例如,您可能想要将 2.1 更改为 2,但将 2.9 更改为 3。这可以使用round($value, $ precision, $mode)函数轻松完成。$ precision参数确定要舍入的小数位数。默认值 0 将仅返回整数。第三个$mode参数用于确定如果要舍入的数字恰好位于中间会发生什么。您可以使用它来指定是否应将 3.5 更改为 3 或 4。

最小值和最大值

PHP 还有两个函数min($values)max($values)来帮助您确定集合或数组中的最低和最高值数字。这些函数可以接受不同类型的参数,例如两个数组和一个字符串。您应该查看文档以了解如何比较它们。

로그인 후 복사

整数除法

您还可以使用intdiv($dividend, $divisor)函数在 PHP 中执行整数除法。在这种情况下,除法后仅返回商的整数部分。同样,您还可以使用fmod($dividend, $divisor)函数获得两个参数相除后的余数或模数。返回值的大小始终小于$divisor的大小。

还有一些其他有用的函数,例如is_nan($value)is_finite($value)is_infinite($val)可用于确定该值是否为数字,如果是数字,则确定它是有限还是无限。请记住,PHP 认为任何太大而无法放入浮点数的值都是无限的。因此is_finite()将返回true100 阶乘,但false1000 阶乘。

在 PHP 中生成随机数

事实证明,随机数在许多情况下都非常有用。您可以使用它们为您的应用程序生成“随机”数据或在游戏中生成敌人实例等。记住这一点非常重要,我们在本节中讨论的函数都不会生成加密安全的随机数。这些功能仅适用于安全性不成问题的情况,例如向重复访问者显示随机问候文本或生成随机统计数据。

函数rand($min, $max)mt_rand($min, $max)可以生成给定值之间的正随机整数,包括$min$max值。当不带任何参数调用函数时,它们会生成 0 到getrandmax()之间的随机数。您可以echogetrandmax()的值来查看这些函数在您的平台上可以生成的最大可能随机数。

函数mt_rand()rand()快 4 倍,如果$max小于$min。从 PHP 7.1.0 开始,rand()实际上已成为mt_rand()的别名。唯一的区别是,如果$max小于$min,则rand()仍然不会给出错误,以保持向后兼容性。

这是一个循环,用于生成 0 到 100 之间的随机值一百万次。正如您所看到的,值 0、50 和 100 大约生成了 10,000 次,并且有轻微波动。

로그인 후 복사

这两个函数也有自己的种子函数,称为srand()mt_srand(),为随机数生成器提供种子。您应该记住,您只在程序中调用srand()mt_srand()一次。在每次调用rand()mt_rand()之前调用它们每次都会给你相同的“随机”数字。

로그인 후 복사

最终想法

PHP 附带了许多内置函数,可以满足您所有的日常计算需求。您可以使用这些函数自己进行稍微复杂的计算,例如 GCD、LCM 和阶乘。

이러한 기능을 사용할 때 명심해야 할 몇 가지 사항이 있습니다. 예를 들어floor()ceil()와 같은 함수에서 반환되는 값은 정수이지만 여전히 부동 소수점 숫자입니다. 마찬가지로, 모든 삼각 함수는 각도가 라디안 단위일 것으로 예상합니다. 도 단위로 처리하려는 각도 값을 전달하면 잘못된 결과를 얻게 됩니다. 따라서 이러한 모든 함수의 반환 값과 예상 매개변수에 대한 설명서를 확인하세요.

위 내용은 PHP에 내장된 수학 함수를 사용하여 삼각법, 난수 생성 등을 살펴보세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!