求大数积
来源:互联网 发布:男士牛仔衣搭配知乎 编辑:程序博客网 时间:2024/05/16 06:18
Divide and Conquer
Implement the Karatsuba algorithm for Multiplication problem in your favourite language, and
Implement the Karatsuba algorithm for Multiplication problem in your favourite language, and
compare the performance with quadratic grade-school method.
import java.util.Scanner;public class Karatsuba {public static int Num_ength(long m){int length=0;while(m!=0){length++;m=m/10;}return length;}public static class split_num{int hight=0,low=0;}public static void split(long num,long m,split_num a ){a.hight=(int) (num/Math.pow(10, m));a.low=(int) (num-a.hight*Math.pow(10, m));} public static long Karatsuba(long num1,long num2) { split_num aNum1=new split_num(); split_num aNum2=new split_num(); int m=0; if (num1<10 | num2<10) return num1*num2; if(Num_ength(num1)>Num_ength(num2)) m=Num_ength(num1)/2; else m=Num_ength(num2)/2; split(num1, m, aNum1); split(num2,m,aNum2); long z0=Karatsuba(aNum1.low, aNum2.low); long z1=Karatsuba((aNum1.low+aNum1.hight),(aNum2.low+aNum2.hight)); long z2=Karatsuba(aNum1.hight, aNum2.hight); return (long) (z2*Math.pow(10, 2*m)+(z1-z2-z0)*Math.pow(10, m)+z0);}public static void main(String[] args) { Scanner scanner=new Scanner(System.in); System.out.print("please enter two big number:"); long num1=scanner.nextInt(); long num2=scanner.nextInt(); long time1=System.currentTimeMillis(); System.out.println(Karatsuba(num1, num2)); long time2=System.currentTimeMillis(); System.out.println(" Time is:"+(time2-time1)); long time3=System.currentTimeMillis(); long num=num1*num2; System.out.println(num); } }
0 0
- 求大数积
- 快速求积、求幂、大数取模
- 对于大数求阶乘
- 求次大数
- 求大数40000阶乘
- 求大数的阶层
- 大数求余
- 求大数余数方法
- 求第k大数
- 大数求平均值公式
- 大数求模hdu1212
- 大数求模lightoj1214
- 求大数N!
- 大数求平方根
- 大数求幂运算
- 求大数平方根
- 大数求余
- 大数求余
- LDA 线性判别分析
- Shiro使用和原理分析---2
- UISleder
- android关于RecyclerView的使用
- 关于Unsupported major.minor version 51.0解决办法
- 求大数积
- 线性判别分析LDA解析2
- 处理问题:变量名‘@UserName’已声明。变量名在插叙批次或存储过程内部必须唯一
- UIStepper
- 【线性代数公开课MIT Linear Algebra】 第十五课 Ax=b与投影矩阵
- 三极管的三种工作状态究竟该怎么理解?
- 协方差矩阵、相关矩阵的详细说明
- 关于B树,B+树
- hdoj 2028 Lowest Common Multiple Plus【GCD】