- 2009年2月16日 19:20
- C言語
最近、なぜか数学関連の書籍を読んでおり、
学生の頃には感じなかった楽しさを発見しています。![]()
でも余り難しい内容にはついて行けないんですけどね…。
ある書籍の冒頭にある内容を一部見てみると
1
1
2
3
5
という数字が並んでいて、次に何が来るか?
…と。
まぁ「8」なんですけどね。
これは数値の並びの前に「0」が隠れているとすると、
0
1
1←前2つ数値(0と1)を加算
2←前2つ数値(1と1)を加算
3←前2つ数値(1と2)を加算
5←前2つ数値(2と3)を加算
8←前2つ数値(3と5)を加算
このように説明できます。
ということで、2つ目以降の結果はパターン化されます。
パターン化できれば、プログラムでは「繰返し処理」を用いて
処理をまとめられるということです。
C言語で記述すると以下のようになりますね。
(クリックで拡大します)
因みにint型で扱うと、わずか47回目でオーバフローしてしまいます。
それから answer の初期値を1にして、繰返しの処理順を変えると
もっとスッキリしますね。
その辺は…まぁいいか。
プログラムを学習する上で「物事をパターン化して把握する」
というのは結構重要な位置を占める考え方だと思うんです。
そういった意味では、数学の勉強を振り返るというのも
プログラムのスキル向上に一役買うかもしれませんね。
数値の計算は、ルール付けがきちんとされているので、
正解を見抜きやすいので。
ちなみに今回扱った数字の並びはフィボナッチ数列という有名な数列で、
黄金比(バランスのとれた形)を求めるときにも使われています。![]()
--------------------------------------------------------------------------------
パソコンスクール KENスクール蒲田校 Programインストラクター
http://www.kenschool.jp/school/kamata/index.html
KENスクールでC言語を学びたい方は、プログラム講座へ!
http://www.kenschool.jp/Program/index.html
