見出し画像

具体化と抽象化をマスターして、アルゴリズム構築能力を向上させよう【動画#6】


<プログラミングについて>

1. プログラミングで重要なこと

①プログラミングのコーディング規約

②変数名

③アルゴリズム構築能力

④リファクタリング能力

上記①と②は、プログラミングvol.1にて解説済。

今回は、③と④について説明する。


2. ③アルゴリズム能力について

プログラミングの視点からアルゴリズムを見ると、
数学パズルの能力が重要


3. 数学パズルを解く上で意識すべきこと

① 具体化
➡︎実際の数値をいれ具体化して法則性を導き出す

② 抽象化
➡︎具体化したものを汎用的な数式にしていく

問題の難易度が上がれば上がるほど、具体化と抽象化の思考の行き来が増える。簡単か難しいかの判断は、具体化と抽象化の往復の回数でわかる。


4. サンプル例を解いてみる

問題1: 3:00は何度?

スクリーンショット 2021-04-05 23.36.16

上記の通り、90°であることがわかる。
※写真が荒くてすいません

問題2: 4:30は何度?

スクリーンショット 2021-04-05 23.41.33

図にすると分かることがあり、
4時30分を具体化したときの気付きが、今回の問題で1番重要。
正直、答えが合っているいないは、今回問題ではない。

気づいて欲しかったのが、
長針が30分移動している間に、短針が4時の位置から5時に向かって少し動いているということ

<POINT>
  ※具体化することの重要性は、
  当たり前のことに気付けるようにするためである。
➡︎アルゴリズムを構築する上では、当たり前をあえて言語化することが重要であり、具体化はそのための手段である。


5. 問題2の角度の求め方

具体化

スクリーンショット 2021-04-06 0.06.30

短針の角度
時間によって動く角度+分によって動く角度によって定義される

よって計算すると、

スクリーンショット 2021-04-06 0.09.29

時間によって動く短針角度+分によって動く短針角度
ー 分によって動く長針角度


抽象化

<式>
定義:時(T)0~23 分(M)0~59
求めたい短針角度ー長針角度

T時間に動く短針の30度+M分間に動く短針の0.5度
ーM分間に動く長針の6度
30T+0.5Mー6M=30Tー5.5M

【解説】

<短針の動き>

360度(時計1周)÷12時間(1周)=30度(1時間の角度)

短針が動く角度は60分(1時間)で30度
30度(1時間で動く角度)÷60分=0.5度(1分間に動く短針の角度)

<長針の動き>

1時間(60分)で1周
今回の問題では、30分(半周)
1周12目盛りであるため、
60分÷12目盛り=5分(1目盛り:30度)
30度÷5分=6度(1分間に動く角度)


6. ④リファクタリングについて

オブジェクト指向
処理の最適化など

※とても深い分野になるため、別途解説する。


次回、
パソコンができることとAI開発に必要な2進数についての知識を、簡単に整理する。

この記事が参加している募集

忘れられない先生

この記事が気に入ったらサポートをしてみませんか?