「数字探し」ゲームには色々な種類があります。
よくあるのは以下の二つです。
- 見本と同じ数字を探す
- 同じ数字を2つ探す
いっけん大した違いはなさそうに思えますが、実は2のほうがずっと難しいです。
なぜなら…
1は見本と同じ数字を探すために全体を一度だけ見渡せばよいに対して、
2は一つ目の数字を選んでから、それと同じ数字を探して、次に二つめの数字を選んでから、それと同じ数字を探して…と繰り返す必要があるからです。
これを繰り返しブロックであらわすと、
1は繰り返しブロックが1つ必要で、
2は繰り返しブロックが2つ必要になります。
繰り返しブロックが増えると、探す回数はビックリするほど大きくなります。
目次
もっと深く学びたい方へ
「探す回数」は、プログラムにおいてはそのまま「計算量」になります。
プログラムの計算量のめやすを「オーダー(Order)」と言い、英単語の頭文字をとって O(n) のようにあらわします。(n が計算量です)
計算量は繰り返しブロックの数で大きく変わります。
今回の例でいうと、1は O(n) で、2は O(n×n) となります。
数字の数が少ないうちはさほど違いがありませんが、多くなってくると、その差はどんどん大きくなります。
自分が作ろうとしているプログラムの計算量がどの程度なのかを考え、扱いたいものの数が多いときは計算量が増えすぎないように気を付けましょう。
コメント