2017年5月6日土曜日

啓発本 / その2

前回の記事で書いた啓発本ですが。

著者の経歴の記述の中に、
「04年度に独立行政法人情報処理推進機構(IPA)より天才プログラマー/スーパークリエイターとして認定され」
という記述がある。

で、著作の78ページの「最適化」の説明の中で、プログラムで例が示されているのだが、
そのプログラムが以下である。

a←0
100回繰り返し{
 a ← a +1
 b ← b + a * 1000
}

一般人に分かりやすくするため、= を ← と書いているようだ。

これを最適化すると…

a ← 0
100回繰り返し{
 a ← a +1
}
b ← a * 1000
ループの外に出して、計算量を減らせるぜ、とのこと。

…え?
100回じゃ面倒なので、3回で考えてみよう。
上の例だと、最終的にbは、

b = 1000 + 2000 + 3000 = 6000

下の例だと、

b = 3 * 1000 = 3000

全然違うわ!!




0 件のコメント:

コメントを投稿