蓝桥杯--黄金队列
2015-03-01 15:31
169 查看
黄金分割数0.618与美学有重要的关系。舞台上报幕员所站的位置大约就是舞台宽度的0.618处,墙上的画像一般也挂在房间高度的0.618处,甚至股票的波动据说也能找到0.618的影子....
黄金分割数是个无理数,也就是无法表示为两个整数的比值。0.618只是它的近似值,其真值可以通过对5开方减去1再除以2来获得,我们取它的一个较精确的近似值:0.618034
有趣的是,一些简单的数列中也会包含这个无理数,这很令数学家震惊!
1 3 4 7 11 18 29 47 .... 称为“鲁卡斯队列”。它后面的每一个项都是前边两项的和。
如果观察前后两项的比值,即:1/3,3/4,4/7,7/11,11/18 ... 会发现它越来越接近于黄金分割数!
你的任务就是计算出从哪一项开始,这个比值四舍五入后已经达到了与0.618034一致的精度。
请写出该比值。格式是:分子/分母。比如:29/47
代码:
<pre name="code" class="html">#include <iostream>
#include <cmath>
#include <cstdio>
using namespace std;
int main(int argc, char *argv[]) {
int a[10000];
a[1]=1;
a[2]=3;
int i;
for(i=3;;i++)
{
a[i]=a[i-1]+a[i-2];
double n=(double(a[i-1])/a[i])*1000000;
int m=int(n+0.5);//四舍五入
float m1=double(m)/1000000;
if(fabs(m1-0.618034)<0.0000001)//注意精度问题
break;
}
cout<<a[i-1]<<'/'<<a[i]<<endl;
return 0;
}
黄金分割数是个无理数,也就是无法表示为两个整数的比值。0.618只是它的近似值,其真值可以通过对5开方减去1再除以2来获得,我们取它的一个较精确的近似值:0.618034
有趣的是,一些简单的数列中也会包含这个无理数,这很令数学家震惊!
1 3 4 7 11 18 29 47 .... 称为“鲁卡斯队列”。它后面的每一个项都是前边两项的和。
如果观察前后两项的比值,即:1/3,3/4,4/7,7/11,11/18 ... 会发现它越来越接近于黄金分割数!
你的任务就是计算出从哪一项开始,这个比值四舍五入后已经达到了与0.618034一致的精度。
请写出该比值。格式是:分子/分母。比如:29/47
代码:
<pre name="code" class="html">#include <iostream>
#include <cmath>
#include <cstdio>
using namespace std;
int main(int argc, char *argv[]) {
int a[10000];
a[1]=1;
a[2]=3;
int i;
for(i=3;;i++)
{
a[i]=a[i-1]+a[i-2];
double n=(double(a[i-1])/a[i])*1000000;
int m=int(n+0.5);//四舍五入
float m1=double(m)/1000000;
if(fabs(m1-0.618034)<0.0000001)//注意精度问题
break;
}
cout<<a[i-1]<<'/'<<a[i]<<endl;
return 0;
}
相关文章推荐
- 第三届蓝桥杯预赛java组第一题黄金队列
- 蓝桥杯 参考题目 黄金队列(水题)
- 第三届蓝桥杯java黄金队列
- 黄金队列-蓝桥杯
- 蓝桥杯 结果填空 黄金队列
- 黄金队列 蓝桥杯
- [蓝桥杯历届题目] 黄金队列
- [蓝桥杯历届题目] 黄金队列
- [蓝桥杯历届题目] 黄金队列
- 黄金队列,汉诺塔,奇怪的比赛,第一个数字,割圆,最大数,矩形的交集和并集,趣味算式(第三届蓝桥杯Java本科预赛试题)
- 蓝桥杯-算法提高-队列操作
- 队列操作 ——蓝桥杯
- 蓝桥杯--2013--黄金连分数(大数)
- [JAVA][2013蓝桥杯预赛 JAVA本科B组][黄金连分数]
- 蓝桥杯--2013--黄金连分数(大数)
- 蓝桥杯 ADV-233 算法提高 队列操作
- 蓝桥杯 算法提高 队列操作 (坑)
- 2013年第四届蓝桥杯——黄金连分数java
- 【蓝桥杯-队列】敲7
- 蓝桥杯第四届 黄金连分数(大数 斐波那契数列与黄金分割)