在 PHP 中计算数字的平均数
当我们在 PHP 中编码时,我们会遇到需要执行的不同数学运算。加法、减法、乘法和除法是原生的。
一个典型的就是平均数,也叫均值。在本文中,我们考虑使用 PHP 内置函数来计算一组已知数字和一组连续数字的平均值。
对特定数字集使用 array_sum()
和 count()
简单的平均公式是数字的总和除以数字的频率(计数)。因此,要找到 1、3、4、5 和 6 的平均值,我们将添加 1+3+4+5+6,得到 19,然后将 19 除以数字的频率 5,平均值将为 3.8。
代码 - PHP:
<?php
$sum = 1 + 3 + 4 + 5 + 6;
$frequency = 5;
$average = $sum/$frequency;
?>
但是,当我们可以轻松计算数字的频率时,这相当简单。因此,我们需要诸如 array_sum()
和 count()
之类的函数。
使用这两个内置函数,你可以轻松计算数组中数字的总和,因为数组是一种更好的数据结构,可以存储整数和浮点数等元素序列。
让我们将相同的数字存储在一个数组中并计算平均值。
代码:
<?php
$numbers = [1, 3, 4, 5, 6];
$average = array_sum($numbers)/count($numbers);
print_r($average);
?>
输出:
3.8
让我们更高级一点,我们自动生成一些随机数。
<?php
$numbers = array_map(function () {
return rand(0, 100);
}, array_fill(0, 193, null));
$average = array_sum($numbers)/count($numbers);
print_r($average);
?>
输出:
49.331606217617
你的输出将与我们的不同,因为数组中的数字是随机生成的。
使用 while
循环进行连续数字集
前面的例子涵盖了一个已知数字的列表。但是,在某些情况下,你可能希望随时计算平均值,例如在用于教育仪表板的 PHP 应用程序中。
假设你想计算学生在该路径上的每周平均数。我们可以使用 while
循环不断地询问数字并在每个间隔计算数字。
在这个例子中,我们使用了 readline()
函数和典型的 array_sum()
和 count()
函数。此外,我们将通过以下 shell 语句使用交互式 PHP shell。
php main.php
代码 - main.php
:
<?php
$temp = [];
echo "\nAdding numbers repeatedly to get the average at each intervals";
echo "\nIf you want to terminate the program, type 000";
while (True) {
echo "\n\n";
$a = (float)readline("Enter a number: ");
if ($a != 000) {
array_push($temp, $a);
$average = array_sum($temp)/count($temp);
echo "Current average is ". $average;
echo "\n";
} else {
break;
}
}
$frequency = count($temp);
echo "\nAverage of all the numbers ($frequency) is $average.";
?>
$temp
数组将保存用户将输入的数字。while
循环允许我们永远不断地请求一个新数字,除非满足中断条件,即零 (0
)。
下面的代码通过 readline()
函数进行用户输入,并确保它是接收到的浮点数。
$a = (float)readline("Enter a number: ");
以下命令将接收一个整数。
$a = (int)readline("Enter a number: ");
我们使用 array_push()
函数将用户的号码添加到 $temp
数组中。之后,我们像之前一样使用 array_sum()
和 count()
函数计算平均值。
完成后,我们可以输入 0
来结束程序,这将启动 break
语句。最后,我们打印所有用户输入数字的平均值。
$frequency = count($temp);
echo "\nAverage of all the numbers ($frequency) is $average.";
交互式外壳输出:
> php main.php
Adding numbers repeatedly to get the average at each interval
If you want to terminate the program, type 0
Enter a number: 11
Current average is 1
Enter a number: 3
Current average is 2
Enter a number: 6
Current average is 3.3333333333333
Enter a number: 88
Current average is 4.5
Enter a number: 1010
Current average is 5.6
Enter a number: 0
Average of all the numbers (5) is 5.6.
Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.
LinkedIn