|
|
概要
黄金比。それはもっとも美しいとされる比だといわれる。
線分をaとbの長さで2つに分割するとき、 a : b = b : (a + b) を満たすように分割したときの比 a : b が黄金比である。
さまざまなものに応用され、生物界にもいろんな形で出てくる。そんな比率に神秘っぽさを感じるね。
プログラムはJavaScriptで書いてます。有効にしていないと実行結果は見れないです。
JavaScriptはHTMLにプログラムソースを直接書き込むだけでOKなんで楽。
ちょっとしたプログラムを書きたいって思った時は便利だということに気づいた。
普段は無効にしてるけど
|
黄金比
a : b = b : (a + b) の式を変形して、
b * b = a * (a + b)
a = 1として
b * b = b + 1
この方程式の解は
b = (1 ± √5) / 2
正の解を採用して 1 : (1 + √5) / 2 が黄金比だ。
以下に黄金比のプログラム。
これは書いても意味ねーなと思ったけど、関数は後々使うかなと思ったんで書いた。
a に適当な値を入れると比率が求まります。
プログラムソース:
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
var a = 1;
function GoldenRatio(a){
return a * 0.5 * (1 + Math.sqrt(5));
}
document.write(a," : " ,GoldenRatio(a));
//-->
</SCRIPT>
実行結果:a = 1
last update 2006/05/28
|
連分数
a : b = b : (a + b)
a = 1 の時、bの式は
b * b = b + 1
この式を変形させて
b = 1 + 1 / b
b = 1 + 1 / (1 + 1 / b)
b = 1 + 1 / (1 + 1 / (1 + 1 / b))
b = 1 + 1 / (1 + 1 / (1 + 1 / (1 + 1 / b)))
・・・
と続く連分数となる。
以下に連分数のプログラム。
b に 0 以外の適当な整数を入れると黄金比の1.618...に近づいてきます。
これはびびった。
プログラムソース:
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
var b = 1;
var n = 20;
for(i = 0; i < n; i++){
b = 1 + 1 / b;
document.write(b, "<BR>");
}
//-->
</SCRIPT>
実行結果:b = 1 , n = 20
last update 2006/05/28
|
フィボナッチ数列
フィボナッチ数列の隣り合う2項の比も黄金比に近づく。
1,1,2,3,5,8,11,...の隣り合う数字の比が黄金比に近づくというのだ。
証明はややこしくて理解しにくいけど、これはすごいと思うよ。
黄金比ってなんだろう??
プログラムソース:
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
var n = 20;
var f0 = 1;
var f1 = 0;
for(i = 0; i < n; i++){
if(i % 2 == 1){
f0 = f0 + f1;
document.write(f0 / f1, "<BR>");
}else{
f1 = f0 + f1;
document.write(f1 / f0, "<BR>");
}
}
//-->
</SCRIPT>
実行結果:n = 20
last update 2006/05/28
|
戻る
|