大数阶乘的计算文档格式.docx

上传人:b****3 文档编号:18433139 上传时间:2022-12-16 格式:DOCX 页数:23 大小:30.66KB
下载 相关 举报
大数阶乘的计算文档格式.docx_第1页
第1页 / 共23页
大数阶乘的计算文档格式.docx_第2页
第2页 / 共23页
大数阶乘的计算文档格式.docx_第3页
第3页 / 共23页
大数阶乘的计算文档格式.docx_第4页
第4页 / 共23页
大数阶乘的计算文档格式.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

大数阶乘的计算文档格式.docx

《大数阶乘的计算文档格式.docx》由会员分享,可在线阅读,更多相关《大数阶乘的计算文档格式.docx(23页珍藏版)》请在冰豆网上搜索。

大数阶乘的计算文档格式.docx

DimxlAsLong,ylAsLong,tempAsLong,iAsLong

xl=Len(Trim(X))

yl=Len(Trim(Y))

ReDimresult(1Toxl+yl)

Fori=1Toxl

Fortemp=1Toyl

result(i+temp)=result(i+temp)+Val(Mid(X,i,1))*Val(Mid(Y,temp,1))

Next

Fori=xl+ylTo2Step-1

temp=result(i)\10

result(i)=result(i)Mod10

result(i-1)=result(i-1)+temp

Ifresult

(1)="

0"

Thenresult

(1)="

"

multi=Join(result,"

Eraseresult

EndFunction

PrivateSubCommand1_Click()'

节约时间,算到1000!

Fori=1To9

calcfactoriali*100

EndSub

Subcalcfactorial(ByValnAsInteger)

Dima()AsString,iAsLong,stimerAsDouble

ReDima(1Ton)

a

(1)=1

stimer=Timer

Fori=2Ton

a(i)=multi(a(i-1),i)

Debug.Printn&

"

用时"

;

Timer-stimer&

秒,结果"

&

Len(a(n))&

位"

Debug.Printa(n)

100!

用时4.67617187496217E-02秒,结果158位

200!

用时.407124999999724秒,结果375位

300!

用时1.00012499999957秒,结果615位

400!

用时1.92199999999957秒,结果869位

500!

用时3.14013671875秒,结果1135位

600!

用时4.68677343750005秒,结果1409位

700!

用时6.64099999999962秒,结果1690位

800!

用时8.9208984375秒,结果1977位

900!

用时11.5000117187501秒,结果2270位

1000!

用时14.5621367187496秒,结果2568位

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

137

与笔者的另一算法(

DimXYS()AsInteger,x()AsInteger,y()AsInteger,result()AsString,iAsLong,jAsLong,kAsLong,TEMPAsLong,stimerAsDouble

Ifn<

0ThenExitSub

ReDimx

(1)

ReDimXYS

(1)

x

(1)=1

XYS

(1)=1

k=1

DoWhilek<

=n

TEMP=Len(CStr(k))

ReDimy(1ToTEMP)

Fori=1ToTEMP

y(i)=Val(Mid(k,i,1))

ReDimXYS(LBound(x)ToUBound(x)+UBound(y))

Fori=LBound(x)ToUBound(x)

Forj=1ToUBound(y)

XYS(i+j)=XYS(i+j)+x(i)*y(j)

Fori=UBound(x)+UBound(y)ToLBound(x)+1Step-1

TEMP=XYS(i)\10

XYS(i)=XYS(i)Mod10

XYS(i-1)=XYS(i-1)+TEMP

x=XYS

k=k+1

Loop

ReDimresult(1ToUBound(x))

i=1

DoWhilex(i)=0'

消除结果前边的多个“0”

result(i)="

i=i+1

DoWhileNoti>

UBound(x)

result(i)=x(i)

factorial=Join(result,"

Debug.Printk-1&

Len(factorial)&

'

Debug.Printfactorial

Erasex()

Erasey()

EraseXYS()

Eraseresult()

PrivateSubCommand1_Click()

Fori=1To10

calcfactoriali*1000

上述过程中,每步的计算结果得到的数组,开始的若干元素总有无效的“0”,导致时间和内存资源的浪费,而且数值越大,无效运算就越多。

苦苦思索不得更有效的解决方法,请各位算法高手指教。

输出结果:

用时.015625秒,结果158位

用时.0471********秒,结果375位

用时.172625000006519秒,结果615位

用时.266250000000582秒,结果869位

用时.422749999997905秒,结果1135位

用时.657000000006519秒,结果1409位

用时.891250000000582秒,结果1690位

用时1.1571249999979秒,结果1977位

用时1.48450000000594秒,结果2270位

用时1.84412500000326秒,结果2568位

2000!

用时9.79700000000594秒,结果5736位

3000!

用时23.703125秒,结果9131位

4000!

用时43.7663750000065秒,结果12674位

5000!

用时72.0003750000033秒,结果16326位

6000!

用时104.15625秒,结果20066位

7000!

用时142.422749999998秒,结果23878位

8000!

用时192.125375000003秒,结果27753位

9000!

用时241.281875000001秒,结果31682位

10000!

用时302.859500000006秒,结果35660位5000!

=422857792660554352220106420023358440539078667462664674884978240218135805270810820069089904787170638753708474665730068544587848606668381273633721089377278763127939036305846216064390447898698223987192970889621161265296832177550039924219683703146907264472878789790404754884162215226671928410969236910449565971736352948400223840381120644820230857671104502306174894755428309761781724040805324809927809328784055486199364548291211876258248802189173977900050213212598043639244626460770511358846595108675470585833924655225589035474435988347383178988034633008458631510209091509935653820010933047965742556741930917055172805200236075085991197635228755907902043369743123506916831211924495971556267407521462198986233088625998302859864857578749445963115286970886710046268423648178989905454690861391613218344174148807186234448114831209490361196546872767755617886828720269104814092456410341835975604276458161513178575901661071782544156980883359372729995603371371200471049437656291142488605335299499642300699972204918120100819059439140675053265004775533850899097945101551091486907004407119572336026243368132330218709287699196806656569752790422258267841561083376425781032629202687211070274681394351128601502326190649959171897364176378436491219709109840944514895358959103804176941956657834822071749105512752639148381172052604826965162642710094919393332661030104360530459117014557209584714353721948246686793467375904872268133410207860903657108806376616249749507413107077401682180585945526445171409277469230062697511346044174567946735828782261629584248675157379172942724178783105429858245117575511884506574424827574660800238588378492396247368761507015767725898321128632295537044902516387925127590841791744640466913531047347984464996154595542013996317357476301740036796192919942190762895445656261767041799538161133387312823511534152581309087915883638351664797225912944270653557142511737323807232632958121797916679692329687096923901003255574789055099807487061047230646195984955239657612208673866514171699307557691897902675157342075864796345338446835085965490727326321910504064289713096224505162064669468098869917122127404504020684923266241760132910227866687270305284709452526825496617772499645206699836925910690894082637401043498371591126455822280606361394115344316771769934353664284928294436414769615881993661388255577487709937004594753907845149034434521174560594039916268444697661821387470705325559577933196460996662145377564935474169708562389214773222865507182490430016186142192760452307670621142961767274704123616107220009743758647492753665149532164780849075146330071016691313420662882562618283865836983632108760710427516073348347788414796732427080410860761841281888307115098982135338406610652147087046874760995427473673509451553599769040367353385551052571682650317682405743993414862392331981432579182193321898940450865013610998098383993110996355981328001049731588596312131853801205046787642910669365600437305633431984879048998524701293300789344532868156679762880495532846386020133480265279836946393384995675049993707814746561543438930431384237878981847802886009971088695632988347711863122382785963653115132377931373647397429369411499028751972227999545182615488298951151926682112451355318472209990435355949887299922035062039816011086376236539782172380237846650673624510635034423187315338308212043804710999419227821039747552717416043890169723961305549371844836119803565896062025009093664399360172007383613354405094329072476518909502507724675841989412224659392163116352038147362479528539732089309533421910635702805576629720156556510767780805933453631121829561792887673002802450932122778852968418208261778476955644980385691275787372678040959158711733971103165232678060798127609246173504120182666874262805385275843979167609007743380748420751185119102921960339376280986753665085212869255321536787932521882574101866137054328973735862725370178558806639851350386944039604928258820180419178073649693885802597758398892014389747165465973510852605706234402069637065660129535734043582961473427275805630839510667375349259659518575646939723218275780003250593895303820539697558870511543073920827422440516299708739599768461206246629098112368012579891284802505094028916959765079395437191311379314427405135599630375642214527294341797246187597964074239147838993541565834716156858499036773056611353833367087548900413091981676330749041510337597307246885839246941715548295730750618505881581959528992660225626903439573313450666972952115230668696227920947779974336574472673471408928071411283888082693377378077293104110767513639476200610858040596019639058015761002337463869352228385801434957178125581445862930042479404065736859862007914604590255413929950088044710384758990326548097338166940500085452723713571394902463820308668541802838317527668064278489561005755859991718966786449154063570014497194249878920859731254275567514575206399118150736397483102490793841725653421894276769116598153430084637087769510295415136551734675054015239706042571746001089968440498845985477977905031632568489156557231006499726498721480800181770357701502983008879487243887718884416833034708723239505377642232944095773219137582371673924704216723002256883135779230394688900662466182532658490724406767024939579697217467485562998183149665611743997680482094166257463879660305171274925119226367615337524381656217330771650129520988754856467131862602387619964334867961514408328902061082833180891221325853682856469916007952105166960451695430614212305743006877217407155473217957577017595967640563812729153867513698712395570542350999228605975469962186195531354132139126436676900465429996811680550737866770665988027062972502001882845886145344368771455361304414465613369092862748276981946836480550952968681758714859972973082332924094777085275279923304892719633314751563311192746150389219290616780607901383451137066300684376267199885515143681266137319912103235469786756421210624899005553564022924345831264231038363416781719908354140411717740185950606674198348143345444247191436828225654380047860390575922417071802670646875454211626958746795398540784464654140381751149965273621123540880166990280149033225139460832668170930713868826549977374286127789417784752681328371818759103642140881783220739808059714203285309721443041845459183002833408705783138284973283

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 化学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1