<大数快速求模算法-百科-满米百科
> 百科 > 列表
大数快速求模算法
时间:2024-12-23 16:14:52
答案

楼上的全不明白楼主的意思,楼主要的是算法,不是程序你们懂吗!!!

我只能说你们不懂什么叫真正的算法,你们只是计算机的傀儡,我看了你们回答非常生气,高校教出来的就是这种“人才”,连算法都不懂。还不如我一高中生。严重BS楼上的,尤其是说java语言的那位。

我来告诉你

这个问题用递推解决

首先要你承认一个公式,我是习惯pascal语言的,c++怕写错,反正只是算法,你忍一下。

不知道你要的算法是大整数对long取余还是大整数对大整数取余。

先说对long取余,这个简单

先承认两个公式:ab mod c=((a mod c)(b mod c)) mod c

(a+b) mod c=(a mod c+b mod c) mod c

然后递推,先算1 mod c,然后10 mod c ,100 mod c。。。用数组存一下,递推方法是10^n mod c=((10^(n-1) mod c)*10) mod c

再加,让k=0,

for a:=1 to l do

k:=(k+num[a]*exp10[a]) mod c

这样最后k就是结果。

补充:我不知道你说哪里耗时间,这个算法是位数的一次函数。

再说大整数对大整数取余,这个需要模仿你平常做的除法来做高精度除法,说明白了就是模拟除法,这个没什么好说的,只要你编程能力足够就写得出来,你可以上网上搜一下,我这就不写了,因为我也不能保证一次写对,因为写一个高精度除法需要高精度加法和乘法,代码稍微有点繁。

不bs楼上的了,我错了。lrj当然认识,见过他很多回了。我不是你说的那种被动接受的人,我们学校没有人懂,全部都是自学的,看到了你说用java解决很生气而己,楼主的意思是算法。

至于oier,我们都很崇拜lrj,市面上基本没有什么适合初学者的书,资来源是网络。

像很多高校,教出来的学计算机系的“程序员”根本不懂算法,导致很多程序效率低下,比如我曾看到一个ip地址数据库这位“牛”用o(n)的算法扫描找对应的ip地址,然后改成其它方法了居然还很高兴地说现在10几次就可以确定了。再比如我们的“老师”,从学校计算机系毕业,来了什么也不懂,最垃圾的模拟都不会,背包都不知道是啥,所以我内心里对一些人排斥。对不起。

但是有一点我不认同,不是大多数的oier都像你说的那样。

还有,就是我很不喜欢你的明白楼主是什么意思却不去回答而用java塘塞过去。

那不是狂妄,那是失望。这种问题竟然要等到我一个高中生来回答,而上面竟然又有人用java搪塞,我对现在算法普及程序感到非常的失望,很伤心。

一楼我不明白的就是你怎么估计?相当于你说你去买份饭没说怎么做,相当模糊,楼主要的是具体的算法。

推荐
© 2024 满米百科