200402 松林弘治、ドワンゴ / 『プログラミングは最強のビジネススキルである』読書グラフィ
読書グラフィ 今日読んだ本
★松林弘治(著)、株式会社ドワンゴ(監修) / 『プログラミングは最強のビジネススキルである』
●「プログラム」に共通すること
・入力
-コンピュータ本体が受け取るなんらかの情報
・処理
-受け取った入力などをもとにして、次にどうするかを決める手順
・出力
-処理に基づき、コンピュータが外部に働きかけた結果
●アルゴリズム(Algorithm)
プログラムの手順を明確に厳密に定義して組み合わせる方法、
問題の解き方の方針など。
「アルゴリズム」をコンピュータに理解してもらえるよう、
具体的に書きくだしたものが「プログラム」です。
●アルゴリズムが満たすべき性質
・正当性
-プログラムの実行結果(出力)が、正しいこと。
-正しい=プログラムとして望んだ意図と同じであること。
・決定性
-入力が同じであれば、出力は常に同じであること。
-実行するたびに、意図しないような結果になるプログラムは「正当」ではない。
・有限性・停止性
-プログラムを実行したら、有限時間内に完了すること。
-無限に繰り返していつまでたっても終わらない状態にならないこと。
●アルゴリズムの世界でも、より効率的な手順がある可能性があったり、
計算途中の値を一時的に記録しておく場所(メモリ)が
たくさん必要になってしまう手順があったりします。
●代表的な「アルゴリズム」
並べ替え、探索(リニアサーチ、バイナリサーチ、幅優先探索、
深さ優先探索)、最大公約数を求める(ユークリッドの互除法)、
最短経路問題、画面への線分描画(ブレゼンハムのアルゴリズム)など。
それぞれのアルゴリズムで「どのくらい計算に時間がかかるか」
「計算の対象が増えていったら、かかる時間がどれくらい増えていくか」
が変わってきます。
特に後者は「計算量(オーダー)」と呼ばれ、
アルゴリズムの良し悪しを判断する重要な指標です。
●並べ替え(ソーティング)アルゴリズム
重さ、長さ、速さ、文字の順序など、大小・順序比較ができるものが
たくさんある場合、これを一定の規則で並べ替えるアルゴリズムです。
バブルソート、マージソート、クイックソートなど。
●最短経路問題
A駅からB駅まで移動する際、最も時間が短く済む経路を計算するなどといった、
乗り換え案内アプリなどでおなじみのアルゴリズムです。
ダイクストラ法、ベルマンフォード法などがよく知られています。
「ノード」と「エッジ」で表現された「グラフ」を考え、
あるノードから別のノードまでの最短経路
(最も重みの少ないエッジの経路)を探します。
#読書 #web #ビジネス