- 47
- 0
- 约1.38千字
- 约 11页
- 2018-10-14 发布于广西
- 举报
高精度模单精度 取模运算相信大家都比较熟悉,但是如何计算一个高精度数模上一个单精度数呢? 举例:45154···545 mod 12,像这样的运算直接模拟着去做可能有点困难。 一个数去模另一个数,比如 456 mod 13 ,是否有另一种办法,不采用456/13求余数的方式呢? 答案是肯定的。 分析思路 456 mod 13 可以写成如下过程: 456=400+50+6 若不看 0 则为 4 , 5 , 6 三位数,这样就把一个很多位数的数字分成了每位都是单独的,在数组中也是这种形式。 我们首先从第一位开始,依次到末尾,如下: ((4%13*10+5)%13*10+6)%13 = 1 ① 这样做为什么可以呢? (400%13+50%13+6%13)%13=1 ② 这样大家都比较明白,因为这是同余定理。 续上 为什么上面的两个式子是等价的? 也许你已经发现①式中有几处*10,若将%13都去除那么①的结果就是456。 这样一来相信那样做的道理就不用我来解释了。 大家思考一下便会理解其中的奥妙。 有了这样的等式高精度模单精度就不成问题了! 参考代码 读入及转换为整型数略。 long ans=0; for(i=1;i=n;i++) ans=(ans*10+a[i])%m; a数组代表高精度数,m代表要模的单精度,ans为最终的结果。 单精度(高精度幂)模单精度 这个标题可能有点不好理解,举例如下: a b mod m ,这是不是快速幂取模的内容,不是,要注意这里的 b 是高精度数,也就是说 b 有可能上百位。但是思想也有快速幂取模中的分治。 那是否就是按照b/2/2…/2的那种形式呢? 因为b为高精度,所以我们尽量避免程序中出现关于高精度的除法,即使是除以单精度。 续上 当然也需要将b化成较小的部分,这种划分是除以10的,如 b=b’ * 10 + r。 那么r代表什么呢? 举个例子便明了了。 159=15*10+9 ,4258=425*10+8 r就代表加上的个位数 , 有10中情况。 分解过程 统一的形式: ab mod m = (ab1 mod m) 10* (ar1 mod m) = … =((abnmod m) 10*(arnmod m)mod m)10*(rn-1modm) …… 红色标记的代表上一层。 具体实现也是要用递归的。 参考代码 long hmod(long a,long k,long m) { if(!k) return s[t[k]]; //边界处理 long i,ans=1,tmp=hmod(a,k-1,m); //进入下一层 for(i=0;i10;i++) ans=ans*tmp%m; //10次方运算 return ans*s[t[k]]%m; //返回这一层的计算结果 } 注释 上述函数是s数组中的值是预处理后的, s[2] = a2 mod m ,所以s数组不需定义太大s[10]就行了。 t数组中是高进度b的每一位数,从0开始。 函数的三个参数a和m不用说了,k代表调用时t数组中的最后一位的位置。 THE END THANK YOU * 高精度模运算
您可能关注的文档
- 第五章功率放大电路-(精品课件).ppt
- 第五章含有运算放大器的电阻电路(1)-(精品课件).ppt
- 第五章能谱分析51俄歇电子能谱分析(AES)511俄歇电-(精品课件).ppt
- 第五章社区卫生服务-(精品课件).ppt
- 第五章试剂-(精品课件).ppt
- 第五章脱水与酸中毒教学目的了解机体-(精品课件).ppt
- 第五章消费者行为学课件_学习和记忆-(精品课件).ppt
- 第一部分第一章第2讲地图-(精品课件).ppt
- 第一部分他生沉积岩-(精品课件).ppt
- 第一部分专题一第二讲形声字、形似字-(精品课件).ppt
- 2025年全国演出经纪人员资格认定考试试卷带答案(研优卷).docx
- 2025年全国演出经纪人员资格认定考试试卷完整版.docx
- 2025年全国演出经纪人员资格认定考试试题库及完整答案.docx
- 2025年全国演出经纪人员资格认定考试试卷完美版.docx
- 2025年全国演出经纪人员资格认定考试试卷含答案(实用).docx
- 2025年全国演出经纪人员资格认定考试试卷及答案(各地真题).docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
- 2025年全国演出经纪人员资格认定考试试卷及答案1套.docx
- 2025年下半年四川成都市郫都区面向社会引进公共类事业单位人员2人备考题库最新.docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
原创力文档

文档评论(0)