| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 969 人关注过本帖
标题:估算圆周率 pi 精确度不够的问题
只看楼主 加入收藏
美美学c
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2023-9-9
结帖率:87.5%
收藏
 问题点数:0 回复次数:6 
估算圆周率 pi 精确度不够的问题
#include <stdio.h>
#define M 1e-6
int main(void) {
int sign=1;
double  i,pi=0;
for(i=1;(double)fabs(1/i)>M;i++,i++)
{
    pi=pi+sign*(double)1/i;
    sign=-sign;
}
pi=4*pi;
printf("%10.8f",pi);
    return 0;
}
通过公式pi/4≈1-1/3+1/5-1/7.....估算pi的值,直到某一项的绝对值小于1e-6
搜索更多相关主题的帖子: i++ 精确 double int 圆周率 
2023-10-04 20:36
美美学c
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2023-9-9
收藏
得分:0 
发现少了头文件

2023-10-04 20:37
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
1/i 是多少?
1.0/i
2023-10-04 22:50
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1694
专家分:4282
注 册:2007-12-27
收藏
得分:0 
回复 3楼 rjsp
楼主的 i 是个double啊,那个没问题的。

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2023-10-05 08:14
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
回复 4楼 forever74
你说得对。

i 是 index 的简写,来自于 数学符号,而后被 ForTran 等编译语言借用。
我没想到有人把它定义为 double 类型。

---------------------------

按照题目要求「直到某一项的绝对值小于1e-6」来看,这个小于1e-6的项应当被加进去;而且题目要求「……小于……」,所以循环条件应该是「…… >= ……」
程序代码:
#include <stdio.h>

int main( void )
{
    double pi_4 = 0;
    for( unsigned i=0; pi_4+=(1.0-i%2*2)/(1+i*2), (1+i*2)<=1000000; ++i );

    printf( "%.6f\n", 4*pi_4 );
}
运行输出 3.141595
结果看起来没问题。(因为单项精度到1e-6,所以只需要看小数点前5位)
2023-10-05 12:41
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1694
专家分:4282
注 册:2007-12-27
收藏
得分:0 
回复 5楼 rjsp
我的第一门编程语言是Fortran,所以我也先入为主地认为i,j,k,l,m,n都应该是整数。
然而,时代说没有什么不可能。

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2023-10-05 20:54
纯蓝之刃
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:76
帖 子:570
专家分:3727
注 册:2019-7-29
收藏
得分:0 
回复 6楼 forever74
没用过Fortran。据说i-n在Fortran中被隐式声明成了整型变量,不用定义就可以使用,才导致了后来的语言都习惯用i,j,k等作为循环的变量,不知道是不是真的。

一沙一世界,一花一天堂。无限掌中置,刹那成永恒。
2023-10-06 13:48
快速回复:估算圆周率 pi 精确度不够的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.040607 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved