融天岭商周客cd:我想的圆周率计算法,1万位十进制精度计算时间在数秒至数十秒左右| 科学版 - 沧浪亭 - ...
来源:百度文库 编辑:九乡新闻网 时间:2024/04/29 14:34:59
我想的圆周率计算法,1万位十进制精度计算时间在数秒至数十秒左右我用自制的长浮点数计算pi,1万位十进制精度计算时间在数秒至数十秒左右,视机器性能而定,
基本算法是
x=3或者3.1或者3.14等等;
循环(x+=sin(x));
每计算一次sin可以获得一倍的精度,sin是用级数叠加的,每叠加一次需要计算4次乘法,一次除法,一次加法,获得2位左右的10进制精度
加乘除法是用最常规的方法计算的,没有使用傅立叶变换,只是在汇编级进行了优化,利用了x86的指令集的特性
基本的数据结构是使用一个无符号整数数组,每个都是一个计算单位,(2^32=4G)进制,表示时再转回10进制,一个符号标志,一个指数标志
性能在使用常规方法计算中应该算快的了吧
这个计算方法是在我算sin(3.14)=0.00159xxxx时想到的
我用了Martin公式(pi=16*arctan(1/5)-4*arctan(1/239))
发现比我的算法还慢
因为sin的收敛的速度比atan快,叠加的次数少
sin x = x-x^3/3!+x^5/5!-...(-1)k-1*x2k-1/(2k-1)!+... (-∞arctan x = x - x^3/3 + x^5/5 - ... (x≤1)
sin式的被除数部分是阶乘,arctan是累加(?)
实际计算时,sin的x是3.14xxx,arctan是1/5,1/239
即使如此还是sin比较快
这个算法的优雅之处在于简单(原理简单,易于理解),和不算差的性能
基本算法是
x=3或者3.1或者3.14等等;
循环(x+=sin(x));
每计算一次sin可以获得一倍的精度,sin是用级数叠加的,每叠加一次需要计算4次乘法,一次除法,一次加法,获得2位左右的10进制精度
加乘除法是用最常规的方法计算的,没有使用傅立叶变换,只是在汇编级进行了优化,利用了x86的指令集的特性
基本的数据结构是使用一个无符号整数数组,每个都是一个计算单位,(2^32=4G)进制,表示时再转回10进制,一个符号标志,一个指数标志
性能在使用常规方法计算中应该算快的了吧
这个计算方法是在我算sin(3.14)=0.00159xxxx时想到的
我用了Martin公式(pi=16*arctan(1/5)-4*arctan(1/239))
发现比我的算法还慢
因为sin的收敛的速度比atan快,叠加的次数少
sin x = x-x^3/3!+x^5/5!-...(-1)k-1*x2k-1/(2k-1)!+... (-∞
sin式的被除数部分是阶乘,arctan是累加(?)
实际计算时,sin的x是3.14xxx,arctan是1/5,1/239
即使如此还是sin比较快
这个算法的优雅之处在于简单(原理简单,易于理解),和不算差的性能
我想的圆周率计算法,1万位十进制精度计算时间在数秒至数十秒左右| 科学版 - 沧浪亭 - ...
万位圆周率
时间窗口计算法
信息: 精度和在浮点计算精度
计算出大底的点位 在2330点左右 时间在2012年4月左右
圆周率值(1.6万位)
计算法编制食谱1
计算几何算法概览1
天干地支计年的算法01
((天干地支计年的算法
CSS选择器优先级的数位计算法
天干地支计年的算法
佛教的时间计算
时间复杂度的计算
如何在excel中实现时间的计算
电工专用教材常用知识《配电计算》对电动机配线的口诀快速计算法_张付伟_百度空间
圆周率小数点后五百位
【圆周率点后21500位】
【圆周率小数点后21500位】
电工应用快速计算法及铜芯电缆导线安全载流量的计算方法1
★★文昌位的算法
二进制与十进制的互换
姓名数字计算法
手心计算法