大整数乘法python3实现
来源:互联网 发布:linux安l查看ssh服务 编辑:程序博客网 时间:2024/06/05 16:32
由于python具有无限精度的int类型,所以用python实现大整数乘法是没意义的,但是思想是一样的。利用的规律是:第一个数的第i位和第二个数大第j位相乘,一定累加到结果的第i+j位上,这里是从0位置开始算的。代码如下:
import sysdef list2str(li):while li[0]==0:del li[0]res=''for i in li:res+=str(i)return resdef multi(stra,strb):aa=list(stra)bb=list(strb)lena=len(stra)lenb=len(strb)result=[0 for i in range(lena+lenb)]for i in range(lena):for j in range(lenb):result[lena-i-1+lenb-j-1]+=int(aa[i])*int(bb[j])for i in range(len(result)-1):if result[i]>=10:result[i+1]+=result[i]//10result[i]=result[i]%10return list2str(result[::-1])if __name__=='__main__':if len(sys.argv)!=3:print('请输入两个参数')exit()a=sys.argv[1]b=sys.argv[2]res=multi(a,b)print('multi',res)print('ok',int(a)*int(b))
multi函数是大整数相乘的主函数,输入是字符串格式的两个大整数,输出是字符串格式的结果;list2str函数是把包含每一位数字的list转换成str,并把最高位占位用的0删除。输出结果如下:
multi后边跟的是用普通大整数思想计算的结果,ok后边跟的是python自己直接计算的相乘结果,用于对比结果。
转载请注明:转自http://blog.csdn.net/littlethunder/article/details/25215517
1 0
- 大整数乘法python3实现
- 大整数乘法实现
- C++实现大整数乘法
- 大整数乘法C++实现
- 大整数乘法-数组实现
- 大整数乘法 java实现
- 大整数乘法的一种实现~~~
- 大整数乘法(C语言实现)
- 分治法实现大整数乘法
- 大整数乘法分而治之递归实现
- 分治法实现大整数乘法
- 大整数乘法算法简单实现 java
- 大整数乘法-C语言实现
- 大整数乘法的Karatsuba算法实现
- python实现大整数相乘---格子乘法
- 算法实现(5)大整数乘法
- 使用cuFFT实现大整数乘法
- 大整数乘法
- 支持向量机(SVM)(二)-- 拉格朗日对偶(Lagrange duality)
- RIL学习之路
- ExtJs4学习笔记一--基础知识
- 4.5Bootstrap学习js插件篇之工具提示
- guava ListenableFuture
- 大整数乘法python3实现
- 仿乐享微信源码分享,把你的生意做到微信里
- Android SDK版本与API Level对照表
- WIN8+VS2012+cocos2dx3.0正式版之新建项目和生成apk文件
- Gson简要使用笔记
- STC,PCR,DTS,PTS
- 为什么明明登陆了plsql执行还报错呢
- NDK环境搭建(Native Code的编译,不需要Cygwin)
- 怎么对数据库查询进行group by 和sum() 操作