平均点を求める Average / 合計と平均
合計を入れる変数を 0 で初期化し、配列を先頭から順にたどって 1 つずつ加算します。最後に合計を要素数(人数)で割ると平均が求まります。
擬似言語の `÷` は整数除算(小数点以下切り捨て)です。割り切れない場合に平均がどうなるかにも注目しましょう。
▶📖 記号の読み方(はじめての人はここを確認)
←代入(右の値を左の箱に入れる)。例: 合計 ← 0
=等しいか比べる(代入ではない)
≠等しくない(≠ は != と書いてもOK)
≤ / ≥以下 / 以上(<= / >= でもOK)
×かけ算(* でもOK)
÷わり算。答えの小数は捨てる(例: 7÷2=3)。/ でもOK
%わり算の余り(例: 7%2=1)
要素数(配列)配列の箱の数。2次元では 行数()・列数()
▲i / ▲j配列の下の三角は「いまコードが見ている位置」
algorithm.pseudo擬似言語 / IPA形式
1整数型の配列: 点数2整数型: i, 合計, 平均3合計 ← 04for (i を 1 から 要素数(点数) まで 1 ずつ増やす)5 合計 ← 合計 + 点数[i]6endfor7平均 ← 合計 ÷ 要素数(点数)
▶ 実行を開始します
配列の可視化
箱の番号(添字)は 1 から始まります▶ 整数型の配列: 点数
実行を開始します
点数
72
[1]
85
[2]
60
[3]
90
[4]
78
[5]
まだ見ていないいま見ている数字を書きかえた完了
マスの下の ▲i は「いまコードが見ている位置」・ 棒の高さは数の大きさ
くらべた回数
0
書きかえた回数
0
読んだ回数
0
変数の状態(いまの値)
i=—
位置(カウンタ)
合計=—
足した結果
平均=—
平均
1 / 15
速度
理解度チェック
解答すると、そのアルゴリズムが実際に動く様子を再生して確認できます。
確認問題 1
点数 = {72, 85, 60, 90, 78} の平均点を上のプログラムで求めると、変数 平均 の値はいくつになるか。
確認問題 2
点数 = {80, 80, 80, 80, 63}(合計 383)の場合、平均 ← 合計 ÷ 要素数 の結果はいくつか。`÷` は整数除算であることに注意。
▶📊 計算量(速さの目安)— くわしく知りたい人向け
「計算量」は、データが増えたときに手間(時間)がどれくらい増えるかの目安です。n はデータの個数。記号の意味は各カードの下に書いてあります。
最良(いちばん速い場合)
O(n)
データの数に比例して増える(ふつう)
平均(ふつう)
O(n)
データの数に比例して増える(ふつう)
最悪(いちばん遅い場合)
O(n)
データの数に比例して増える(ふつう)
使う追加メモリ(空間)
O(1)
データが増えても一定(最速)