首页 > 编程知识 正文

加标回收率的计算方法,加标回收率实验的步骤

时间:2023-05-03 15:15:27 阅读:158005 作者:3862

[ [原始]圆周率PI的计算(准确地说是几十万位) ) ) ) ) ) ) )。

//环境: VC6.0,控制台应用程序

//原理:=21/3*(22/5* ) 23/7* ) 2 .

//特点:在线汇编高速化,计算范围扩大

//限制:原则上位数ws没有限制,但本

//因为算法的时间与ws的平方成比例,所以将位数设定为

(最好控制在二三十万以内。 本人使用过

) )2.6GHz,20万位,需要10分钟左右

#包含

#包含

#包含

#包含

long a=100000L;

void main () )

{ FILE *fp;

长t1、t2;

char filename[40];

unsigned long c,d,e,I,j,ws;

unsigned long *f,*bb;

printf ('位数=? );

scanf('%LD ',ws );

if(ws1 )返回;

c=(ws4 )/05*17;

b=f=(long* ) malloc ) 04*c );

if(f==null ) abort );

printf(pi为: ); //提示输入数据文件名

scanf('%s ',filename ); 如果输入//nul,则不保存磁盘

FP=fopen(filename,' w ' );

if(FP==null ) abort );

t1=time (空);

for(I=0; I

*bb=a/5; *bb=a/5; //这里还不错

for(e=0; C; c-=17,bb-=17,e=d%a )

{静态长组;

d=0; i=c;

j=c c-1;

_asm mov eDI,bb

loopi:

_asm mov eax,[eDI]

_asm mul Dword ptr a

_asm mov ecx,edx

_asm mov ebx,eax

_asm mov eax,d

_asm mul dword ptr i

_asm add eax,ebx

_asm adc edx,ecx

_asm div dword ptr j

_asm mov d,eax

_asm mov [eDI],edx

_asm sub eDI,04

_asm dec dword ptr j

_asm dec dword ptr j

_asm dec dword ptr i

_asm jnz loopi

e =d/a; //这是为了避免重复计算

if(e=100000 )//这是一个糟糕的情况

abort (; //那个最好不要发生

if(group0==0)//万位数附近

printf(Lu(t ),e ); 显示//5位

fprintf(FP,' Lu ',e ); //写入光盘

() ) ) ) )。

T2=time (空);

printf('%LD秒(n ),t2-t1 );

free(f;

flose(FP );

() ) ) ) )。

[此帖子已在2007-4-9 17:41:55中编辑]

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。