ロジックは「なぜ、その判断をするのか」。アルゴリズムは「その判断を、どの順番で実行するのか」である。
名前は難しく見えるが、アルゴリズムは特別なものではない。目的へたどり着くための手順を、順番と条件に分けたものである。料理、事務作業、競艇ソフト作りにも同じ考え方が使われている。
この記事の読み方
- 📱 スマホで読めます:アルゴリズムとロジックの違いを理解する
- 💻 PC推奨:自分の作業や判断を、PCが実行できる手順へ整理する
アルゴリズムは「再現できる手順」である
アルゴリズムとは、ある目的を達成するために、処理の順番とルールを定めたものである。
- 何を最初に行うか
- どの条件で次へ進むか
- 条件を満たさない場合にどうするか
- 最後に何を結果として残すか
同じ入力と条件なら、何度実行しても同じ手順をたどれることが重要である。PCは、人間が決めたこの道順を正確に繰り返すことが得意である。
お好み焼きもアルゴリズムで作られる
身近な例として、お好み焼きを考える。材料を用意し、混ぜ、焼き、返し、仕上げる。材料の量、混ぜる順番、焼く時間、返すタイミングが決まっているから、完成品をある程度再現できる。
- 材料を計量する
- 決めた順番で混ぜる
- 決めた厚さで焼く
- 条件を満たしたら返す
- 焼き上がりを確認する
順番や量が大きく崩れれば、同じ仕上がりにはならない。この「決めた手順を再現する」という考え方が、アルゴリズムの入口である。
ただし、「おいしいか」は人によって変わる。手順を守って完成しても、評価まで一つに決まるとは限らない。ここに、アルゴリズムとロジックを分けて考える理由がある。
ロジックは「判断の理由」である
ロジックとは、なぜその条件を選び、なぜその結果を良いと判断するのかという筋道である。
| 役割 | 問い | 競艇ソフトでの例 |
|---|---|---|
| ロジック | なぜ、その判断をするのか | この条件を有利と考える理由 |
| アルゴリズム | どの順番で処理するのか | 値を取得し、条件判定し、点数を出す手順 |
| プログラム | 何で実行するのか | VBAやPythonで動かすコード |
勝率30%以上、オッズ5倍以上、展示値が基準以上なら買う、と決めた場合、条件を順番に判定する部分がアルゴリズムである。なぜその数値を採用するのか、収支に有効かを考える部分がロジックである。
アルゴリズムは、決めたルールを忠実に実行する。ロジックは、そのルールに意味があるかを考える。
PCは「雰囲気」を理解できない
「なんとなく良さそう」「今日は荒れそうな気がする」「この選手は来そうだ」という感覚は、そのままではPCへ伝わらない。
PCへ仕事をさせるには、数値、条件、順番、例外、結果を具体的に決める必要がある。PCは途中で気を利かせない。書かれていない判断は実行できない。
PCは、間違った手順でも正確に繰り返す。エラーなく動いたことは、ロジックが正しいことを証明しない。
競艇ソフトでは、作業を小さく分ける
💻 ここからはPC推奨である。
競艇ソフトの処理を大きな一文で考えず、小さな処理へ分解する。
- データを読み込む
- 必要な項目を取り出す
- 欠損や異常を確認する
- 決めた条件を順番に判定する
- 点数や評価を計算する
- 買う・見送るの結果と理由を記録する
- 保存して検証できる状態にする
処理を分けておけば、途中の結果を確認できる。問題が起きたときも、データ、条件、計算、保存のどこに原因があるかを切り分けやすい。
アルゴリズムは検証できて初めて役立つ
手順を作っただけでは完成ではない。想定した入力、欠損した入力、境界値、例外となるデータで動かし、同じ条件なら同じ結果になるかを確かめる。
- 入力データは正しいか
- 条件の境界で判定が逆転しないか
- 除外条件が先に働くか
- 判定理由を後から追えるか
- 修正前後の結果を比較できるか
検証可能な手順があれば、ロジックの条件や重みを変更しても、その影響を比較できる。これが競艇ソフトを育てる土台になる。
考える順番を整理する
- 目的を決める
- 判断の理由であるロジックを決める
- 実行手順であるアルゴリズムへ分解する
- VBAやPythonで実装する
- 結果を記録して検証する
アルゴリズムはコンピューターを動かす道順である。ロジックは、その道順を選ぶ理由である。二つを分けることで、修正と検証ができるソフトになる。



コメント