アルゴリズムをビジネスに‼️ーPython Boot Camp で学んだこと

めざせ!AI スペシャリスト

アルゴリズム(algorithm)とは問題を解くための方法・手順で、
料理のレシピのようなもの。
ただ、再現可能な厳密性がある点がレシピとは違う。

これは『アルゴリズム図鑑』の解説だ。

スマホ用のアプリも秀逸!

先日(2019年7月27日)のPython Boot Campの講義で、
アルゴリズムの話が出たのだ。

FizzBuzzゲームのプログラムをPythonで書いてみましょう」

講義早々、講師がこう切り出した。

いきなり、コーディング!
緊張が高まる(私だけ?)。

FizzBuzzとは複数人が集まって行うゲームで、
そのルールは、

1から100まで順に数字を言う。
ただし、
3の倍数のときは「Fizz」
5の倍数のときは「Buzz」
3と5の倍数のときは「FizzBuzz」
と言わなければいけない

つまり、

1, 2, Fizz, 4, Buzz, Fizz, 7, 8, Fizz, Buzz, 11, Fizz, 13, 14, FizzBuzz・・・

となる。

これをPythonで実装しようというのだ。
簡単そうだが、
繰り返し(for文)、条件分岐(if文,elif節,else節)の制御文を使いこなす必要があり、
初心者にはよい課題だという。

コードを書く前にアルゴリズムを考えましょう。

ここで、アルゴリズムの話が出てきた。
まずは、解法を組み立てるのだ。

3の倍数とは3で割った余りが0、と考えればコーディングできる。
5の倍数も同様に考え、順にチェックすればいいのだが、
この問題で最も重要なのは、

3または5で割り切れるかを最初に確認する

ということだ。
3と5は互いに素なので、
最初に3と5の両方で割り切れる数字かどうかをチェックすれば、
あとは、どんな順番で確認してもかまわない。

そうなのだ。
プログラミングとは、
プログラム言語を学んでコーディングすることだけではなく、
問題解決のための方法や手順(=アルゴリズム)を自分で考えることが必要なのだ。

アイドルも歌う「アルゴリズム」(本文とは無関係)

しかも、
現実的な制限時間内に答えが求められるものでなければ実用に耐えない。

これって、ロジカルシンキングと同じで、
ふだんのビジネスにも活かせる手法だ。

う~ん、願わくは、
もっと若いうちに知りたかった。

コード例 ©http://tinyurl.com/jroprmn

Follow me!