アルゴリズムとは?プログラムとの違いと「解き方は複数」

公開: 更新: カテゴリ: テクノロジ系

30秒で結論

アルゴリズムとは(全体像)

アルゴリズムとは、問題を解くための「手順(やり方)」のことだ。「こうやって、こう進めれば、答えにたどり着く」という、決まった進め方のことをいう。

ここで一番のポイント。アルゴリズムは「手順(考え方)そのもの」で、プログラムは「その手順を、コンピュータが分かる言葉で書いたもの(実装)」だ。料理でいえば、レシピ(手順)=アルゴリズム、実際にそのレシピで作ること=プログラム、というイメージ。「アルゴリズム=プログラム」と思い込むと誤りになる。

アルゴリズムは、フローチャート(流れ図)・擬似言語・プログラミング言語などで表せる。


詳しく:プログラムとの違いと「解き方は複数」

ここが心臓部。ポイントを表で押さえよう。

アルゴリズムのポイント

項目やさしい意味
アルゴリズム問題を解く「手順(考え方)」そのもの
プログラムその手順を、コンピュータの言葉で書いたもの(実装)
表し方フローチャート・擬似言語・プログラミング言語
良いアルゴリズム正確さ+効率(速さ・少ないメモリ)

まず、アルゴリズムとプログラムの違い。アルゴリズムは手順(考え方)、プログラムはそれを実際に書いたものだ。

そして、もう1つ大事なこと。同じ問題でも、解き方(アルゴリズム)は1つとは限らない。いくつもの解き方があり、どれだけ速く・少ないメモリで解けるか(効率)で、優劣がつく。「正しい解き方は1つだけ」と思い込むと誤りだ。だから、正確さに加えて、効率のよさも、良いアルゴリズムの大事な条件になる。

わかりやすく言い換えると

身近なたとえで整理しよう。料理で考えるとわかりやすい。

アルゴリズムは、「料理のレシピ(手順)」のイメージ。プログラムは、「そのレシピを、実際にキッチンの道具で作れる形にしたもの(実装)」だ。つまり、考え方と、その実物の違いだ。

「解き方は複数」というのは、同じ料理でも、レシピ(作り方)はいくつもあること。要するに、手順は1つに限らず、早く・むだなく作れるほうがよい。


試験のツボ

🔴 一番出る:アルゴリズムとプログラムの違い

①アルゴリズム=問題を解く手順(考え方)そのもの

②プログラム=その手順をコンピュータの言葉で書いたもの(実装)

🔴 次に出る:解き方は1つとは限らない

①同じ問題でも、解き方(アルゴリズム)は複数ある

②速さやメモリ(効率)で、優劣がつく

🟡 押さえると安定:表し方と評価

①フローチャート・擬似言語などで表せる

②良いアルゴリズム=正確さ+効率のよさ


よくある間違い

「アルゴリズムとプログラムは、まったく同じものだ」→ ✗  アルゴリズムは手順(考え方)、プログラムはそれを書いたもの(実装)。別もの。

「ある問題に対して、正しい解き方(アルゴリズム)は1つだけだ」→ ✗  同じ問題でも、解き方は複数ある。効率(速さ・メモリ)で優劣がつく。

「アルゴリズムは、効率を考えず、正しく解ければそれでよい」→ ✗  正確さに加えて、効率のよさも、良いアルゴリズムの大事な条件。


試験での出題パターン

実際の問題でたしかめてみよう。

オリジナル問題1(アルゴリズムの正体)

📝 オリジナル問題 1 アルゴリズムの正体

アルゴリズムに関する次の記述のうち、最も適切なものはどれか。

  1. 社員の出退勤を記録して、毎月の給与を計算するためのしくみである
  2. ある問題を解くための、決まった手順(やり方)のことなのである
  3. 取引先へ毎月の請求書を郵送する、決まった事務作業のことを指す
  4. 完成したシステムを宣伝して、より多く売るための広告活動である
データパン
データパン 解答・解説

解答は 2 だぱん。

アルゴリズムは、問題を解くための手順(やり方)なんだぱん。「こう進めれば答えにたどり着く」という決まった進め方だぱん。

選択肢1は給与計算、選択肢3は請求書の事務、選択肢4は広告で、どれも違うぱん。

選択肢判定理由
1給与計算のしくみではない
2問題を解く手順で正しい
3請求書の事務の話
4広告活動ではない

オリジナル問題2(プログラムとの違い)

📝 オリジナル問題 2 アルゴリズムとプログラムの違い

アルゴリズムとプログラムの違いに関する次の記述のうち、最も適切なものはどれか。

  1. アルゴリズムは実際に書いたもの、プログラムは手順そのものである
  2. アルゴリズムもプログラムも、社員の給与を計算するものである
  3. アルゴリズムもプログラムも同じで、呼び名が違うだけだとされる
  4. アルゴリズムは手順そのもの、プログラムはそれを書いたものである
データパン
データパン 解答・解説

解答は 4 だぱん。

アルゴリズムは手順そのもの、プログラムはそれを書いたもの(実装)なんだぱん。レシピと、実際の調理の関係だぱん。

選択肢1は説明が逆、選択肢2は給与計算、選択肢3は「同じ」が誤りだぱん。

選択肢判定理由
1アルゴリズムとプログラムの説明が逆
2給与計算のものではない
3両者には違いがある
4手順そのものとその実装で正しい

オリジナル問題3(解き方は複数)

📝 オリジナル問題 3 解き方は複数ある

アルゴリズムの解き方に関する次の記述のうち、最も適切なものはどれか。

  1. ある問題の解き方(アルゴリズム)は、必ず1つだけだとされている
  2. 社員の給与を計算する解き方だけが、正しいとされているものだ
  3. 同じ問題でも解き方は複数あり、効率で優劣がつくものである
  4. 取引先へ請求書を郵送する解き方だけが、正しいとされている
データパン
データパン 解答・解説

解答は 3 だぱん。

同じ問題でも、解き方は複数あり、効率(速さ・メモリ)で優劣がつくんだぱん。正しい解き方が1つだけ、とはかぎらないんだぱん。

選択肢1の「必ず1つ」、選択肢2の給与、選択肢4の請求書は、いずれも違うぱん。

選択肢判定理由
1解き方は1つとは限らない
2給与計算の解き方ではない
3複数あり効率で優劣で正しい
4請求書の事務の解き方ではない

まとめ

押さえどころ

次に学ぶ


執筆: SikakuQuest編集部

勉強は、クエストになった。

資格の勉強を、冒険に変えるRPG学習アプリ

App Storeで見る