当前位置 :
VB大数乘法运算速度问下大家有没有写这个的,大家的运算速度是多少,我好做个比较,我的万位乘万位的运算速度,在普通家用的电脑上的速度是2000毫秒(2秒)到4000毫秒(4秒)之间,万位乘以
更新时间: 2025-08-29 08:05:04
1人问答
问题描述:

VB大数乘法运算速度

问下大家有没有写这个的,大家的运算速度是多少,我好做个比较,我的万位乘万位的运算速度,在普通家用的电脑上的速度是2000毫秒(2秒)到4000毫秒(4秒)之间,

万位乘以万位,就是一个(一万位)的随机巨数乘以一个(一万位)的随机巨数,产生一个(两万位)的巨数的意思!希望大家明白,不要误解,我并没有打错字!另,2万位乘以2万位的运算时间在8到15秒之间!10万位乘10万位在4到6分钟时间,我的算法是可以(小数以及负数),并且在文本框里以精确的逐位方式显示的!

刘全伟回答:
  首先时间复杂度应该是o(N^2)吧,所以就看你的运算位数了.   如果是10000位的话直接算应该要是10秒级别的,我测出来的大致时间是20秒.优化成每4位存成一个数计算后,运算量瞬间降下来,相当于N=2500了,1秒就能出结果.   然后10万位的优化之后我需要23秒.不知道你的方法是不是比我的要好……   程序如下:   PrivateSubForm_Load()   Dima(100000)AsLong,b(100000)AsLong,c(200000)AsLong,x&,n&,s&,i&,j&,k&,m&   Randomize   o=4'优化位数,即数组中每项保存几位数,最大可到4   n=100000'巨数的位数   s=10^o   t=no-1'相当于时间复杂度中的N   Fori=0Tot   a(i)=Int(Rnd*10)   b(i)=Int(Rnd*10)   Next   m=-1'c的有效位数   t1=Now()'开始计算   Fori=0Tot   x=0   Forj=0Tot   x=x+a(i)*b(j)   k=i   Whilex>0   Whilek>m   m=m+1   c(m)=0   Wend   c(k)=(c(k)+x)Mods   x=xs   k=k+1   Wend   Next   Next   t2=Now()'完成计算   MsgBox"用时:"&Str(Second(t2-t1))&"s"   EndSub   我这个都已经存好到数组了,要显示就把它输出成字符串就好了,而且小数和负数的话只要记个符号和小数点的位置,都不影响计算时间的啊.   输出可以用Format(a(i),"0000").   你问题里问的不是计算时间么?我就懒得加那些东西了.
最新更新
优秀其它推荐
保卡通(baokatong.com)汇总了汉语字典,新华字典,成语字典,组词,词语,在线查字典,中文字典,英汉字典,在线字典,康熙字典等等,是学生查询学习资料的好帮手,是老师教学的好助手。
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
Copyright©2009-2021 保卡通 baokatong.com 版权所有