今天写网站时突然感觉到,算法思维好像要比算法过程重要的多。。。
借此来谈谈某室友突然谈到的“黄金分割问题”

斐波那契数列中的黄金分割

斐波那契数列因古希腊建筑《伯特农神殿》上出现的“黄金分割”而闻名,其中有许多有趣的数学特性。

斐波那契数列由两个 1 开端,其后的每一位数字都是前两位数字之和。譬如 1 和 1 的和为 2,1 和 2 的和为 3,2 和 3 的和为 5,3 和 5 的和为 8……一直这样继续计算下去,就得到下面这样的数列。

1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, …

这个数列就是“斐波那契数列”。

我们来计算下这个数列中每相邻两个数的商值,可以得到如下所示的结果:
1÷1 = 1.00000
2÷1 = 2.00000
3÷2 = 1.50000
5÷3 = 1.66667
8÷5 = 1.60000
13÷8 = 1.62500
21÷13 = 1.61538
34÷21 = 1.61905
55÷34 = 1.61765
89÷55 = 1.61818

可以看到,商值最终慢慢地趋近 1.618。这就是有名的“黄金分割”的由来。

似不似很神奇?

试想一下,如果你控制了精度,会怎么样?如果你选取的是浮点数又会怎样?
再想一下,是不是可以在程序中控条件,在无限接近黄金分割数时停止(这个比较困难)或者限定精度在达到距离1.618…某一数值时暂停输出???

(代码我就不发了)