黄金比

黄金比とは、線分を a : b = b : (a + b) の比に分割する a : b のことで、1 : (1 + sqrt 5) / 2 になる。縦横が黄金比の長方形は最も美しいとされており、ギリシアのパルテノン神殿や、薄型テレビの画面や、iPod の縦横比に利用されている。

ところが、フィボナッチ数の隣り合う2項の比は、黄金比に収束するらしい。そこで、検証してみた。フィボナッチ数のリストは、fib = 0:1:zipWith (+) fib (tail fib) で作成できるから。

Prelude> let fib = 0:1:zipWith (+) fib (tail fib)
Prelude> take 10 fib
[0,1,1,2,3,5,8,13,21,34]

50項目と49項目の比をとると、

Prelude> fromIntegral (fib !! 50) / fromIntegral (fib !! 49)
1.618033988749895

直接計算したものと一致するのが確認できる。

Prelude> (1 + sqrt 5) / 2
1.618033988749895

Haskell のプログラミングを覚えるのは、思っていたより難しくなかった。しかし、趣味でプログラミングをしていると、何をプログラミングしたらよいのかを思いつくのが難しい。


今日のHaskell
relude> [1..10] !! 0
1
Prelude> [1..10] !! 9
10

リストの n 番目の要素を取り出す演算子 !! ただし、開始は 0 番目から。
[PR]
by tnomura9 | 2010-11-16 00:45 | 話のネタ | Comments(0)
<< Ruby版 askForWords askForWords >>