PHP で数値の平均を計算する

Olorunfemi Akinlua 2023年1月30日
  1. 特定の番号セットには array_sum()count() を使用する
  2. 連続番号セットに while ループを使用
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() などの関数が必要です。

これらの 2つの組み込み関数を使用すると、配列は整数や浮動小数点数などの要素のシーケンスを格納するためのより優れたデータ構造であるため、配列内の数値の合計を簡単に計算できます。

同じ数値を配列内に格納し、平均を計算してみましょう。

コード:

<?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() 関数を使用します。さらに、次のシェルステートメントを介してインタラクティブな PHP シェルを利用します。

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 Akinlua avatar Olorunfemi Akinlua avatar

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