社区
数据结构与算法
帖子详情
求教一个计算圆周率的最优算法
dengcainiao
2002-05-10 07:05:28
写谢谢
...全文
127
10
打赏
收藏
求教一个计算圆周率的最优算法
写谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Tice
2002-05-20
打赏
举报
回复
那要算多久?
qtf
2002-05-12
打赏
举报
回复
这么厉害!!!
10亿?
xuying
2002-05-11
打赏
举报
回复
上面的程序可以算任意位。
xuying
2002-05-11
打赏
举报
回复
#include<stdio.h>
#include<stdlib.h>
#define Fcalloc calloc
#define Ffree free
#define Size_T unsigned long
long kf, ks;
long *mf, *ms;
long cnt, n, temp, nd;
long i;
long col, col1;
long loc, stor[21];
void shift(long *l1, long *l2, long lp, long lmod) {
long k;
k = ((*l2) > 0 ? (*l2) / lmod: -(-(*l2) / lmod) - 1);
*l2 -= k * lmod;
*l1 += k * lp;
}
void yprint(long m) {
if (cnt<n) {
if (++col == 11) {
col = 1;
if (++col1 == 6) {
col1 = 0;
printf("\n");
printf("%4ld",m%10);
}
else printf("%3ld",m%10);
}
else printf("%ld",m);
cnt++;
}
}
void xprint(long m) {
long ii, wk, wk1;
if (m < 8) {
for (ii = 1; ii <= loc; )
yprint(stor[(int)(ii++)]);
loc = 0;
}
else {
if (m > 9) {
wk = m / 10;
m %= 10;
for (wk1 = loc; wk1 >= 1; wk1--) {
wk += stor[(int)wk1];
stor[(int)wk1] = wk % 10;
wk /= 10;
}
}
}
stor[(int)(++loc)] = m;
}
void memerr(int errno) {
printf("\a\nOut of memory error #%d\n", errno);
if (2 == errno)
Ffree(mf);
_exit(2);
}
int main(int argc, char *argv[]) {
int i=0;
char *endp;
printf("\n");
printf("PI Caculater made by Godman\n");
printf("$Id: pi.c 1.14 1998/12/03 15:04:23 GUOXM Exp $\n");
printf("==============================================\n");
stor[i++] = 0;
if (argc < 2) {
puts("\aUsage: PI <number_of_digits>");
return(1);
}
n = strtol(argv[1], &endp, 10);
if (NULL == (mf = Fcalloc((Size_T)(n + 3L), (Size_T)sizeof(long))))
memerr(1);
if (NULL == (ms = Fcalloc((Size_T)(n + 3L), (Size_T)sizeof(long))))
memerr(2);
printf("\nApproximation of PI to %ld digits\n", (long)n);
cnt = 0;
kf = 25;
ks = 57121L;
mf[1] = 1L;
for (i = 2; i <= (int)n; i += 2) {
mf[i] = -16L;
mf[i+1] = 16L;
}
for (i = 1; i <= (int)n; i += 2) {
ms[i] = -4L;
ms[i+1] = 4L;
}
printf("\n 3.");
while (cnt < n) {
for (i = 0; ++i <= (int)n - (int)cnt; ) {
mf[i] *= 10L;
ms[i] *= 10L;
}
for (i =(int)(n - cnt + 1); --i >= 2; ) {
temp = 2 * i - 1;
shift(&mf[i - 1], &mf[i], temp - 2, temp * kf);
shift(&ms[i - 1], &ms[i], temp - 2, temp * ks);
}
nd = 0;
shift((long *)&nd, &mf[1], 1L, 5L);
shift((long *)&nd, &ms[1], 1L, 239L);
xprint(nd);
}
printf("\n\n======================\n");
printf("Calculations Completed!\n");
printf("You can fine this program and source code in ftp://166.111.18.56\n");
Ffree(ms);
Ffree(mf);
return(0);
}
kingfighter_han
2002-05-11
打赏
举报
回复
o
NowCan
2002-05-11
打赏
举报
回复
10亿位的都见过。
Tice
2002-05-10
打赏
举报
回复
我又看过了,最多可以算到3335万位
Tice
2002-05-10
打赏
举报
回复
我知道有个叫super pi的程序,可以算到100多万位
one_add_one
2002-05-10
打赏
举报
回复
最优的我不知道,比较好的,我到时知道几个。
atlantis13579
2002-05-10
打赏
举报
回复
肯定不是最优算法,但可以算.
long a=10000,b,c=2800,d,e,f[2801],g;
main(){for(;b-c;)f[b++]=a/5;
for(;d=0,g=c*2;c-=14,printf("%.4d",e+d/a),e=d%a)
for(b=c;d+=f[b]*a,f[b]=d%--g,d/=g--,--b;d*=b);}
Note-Station-to-markdown
这是
一个
跨平台脚本,可将 Synology Note Station 的笔记转换为 Markdown 文件。脚本使用 Python 编写,可在任何桌面平台上运行。 转换后您将获得: 1、以导出的笔记本命名的文件夹; 2、这些文件夹中以所有内联图片原位存储的 Markdown 语法纯文本文件笔记; 3、在笔记文本开头处分配标签和附件链接; 4、所有图片和附加文件都位于笔记本目录下的媒体子目录中。
区县-专精特新企业数量(2013-2025年).xlsx
详细介绍及样例数据:https://blog.csdn.net/li514006030/article/details/162965929
政府科技管理者如何通过区域科技创新数智大脑实现精准产业招商?.docx
科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。
易语言源码读取天气预报-模块
易语言源码读取天气预报-模块
面向高精度电流控制的PMSM多参数PSO辨识模型研究(Simulink仿真实现)
内容概要:本文围绕“面向高精度电流控制的PMSM多参数PSO辨识模型研究”,系统阐述了基于Simulink的永磁同步电机(PMSM)多参数辨识方法,重点采用粒子群优化
算法
(PSO)实现对电机关键内部参数的高精度辨识。研究构建了完整的PMSM控制系统仿真模型,结合智能优化
算法
,解决了传统参数辨识中精度低、收敛慢的问题,有效提升了电流环控制的动态性能与稳态精度。该方法特别适用于对控制精度和响应速度要求较高的工业应用场景,如高性能伺服系统、电动汽车驱动系统等,具有较强的工程实用价值和科研参考意义。文中提供了完整的Simulink仿真模型与配套代码,确保了研究内容的可复现性和实践操作性。; 适合人群:具备电机控制、自动化或电气工程等相关专业背景,熟悉MATLAB/Simulink仿真环境,从事电机驱动系统研发、控制
算法
设计或相关领域科研工作的工程师及研究生,尤其适合工作1-5年、希望深入理解先进参数辨识技术的研发人员。; 使用场景及目标:①开展高精度PMSM控制系统的设计与参数辨识研究;②学习并掌握PSO等智能优化
算法
在电机系统参数辨识中的具体实现与调优技巧;③完成学术论文复现、科研项目验证、毕业设计或工程原型开发,提升对现代电机控制核心技术的理解与应用能力。; 阅读建议:建议读者结合提供的Simulink模型与源代码进行动手实践,按照文档逻辑逐步搭建与调试仿真系统,重点关注PSO
算法
与电机模型的交互机制、目标函数设计及参数收敛过程,通过对比不同工况下的辨识结果,深入理解
算法
性能与控制精度之间的内在联系。
数据结构与算法
33,025
社区成员
35,336
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章