摘要:
1. 问题Karatsuba 大整数的快速乘积算法的运行时间(时间复杂度的递推关系式)为 T(n)=O(n)+4⋅T(n/2),求其最终的时间复杂度。2. 主定理的内容 3. 分析所以根据主定理的判别方法,可知对于 T(n)=O(n)+4⋅T(n/2),a=4,b=... 阅读全文
摘要:
1. 问题Karatsuba 大整数的快速乘积算法的运行时间(时间复杂度的递推关系式)为 T(n)=O(n)+4⋅T(n/2),求其最终的时间复杂度。2. 主定理的内容 3. 分析所以根据主定理的判别方法,可知对于 T(n)=O(n)+4⋅T(n/2),a=4,b=... 阅读全文
摘要:
主要针对:二进制表示法,以及十进制表示法;1. 获取位数已知该数 n 采用十进制进行表示二进制形式的位数:⌊log2n⌋+1十进制形式的位数:⌊log10n⌋+12. 截断(保留前/后 m 位)二进制:保留前 m 位 ⇒ 需要右移 n-m 位;十进制:保留前 m 位 ... 阅读全文
摘要:
主要针对:二进制表示法,以及十进制表示法;1. 获取位数已知该数 n 采用十进制进行表示二进制形式的位数:⌊log2n⌋+1十进制形式的位数:⌊log10n⌋+12. 截断(保留前/后 m 位)二进制:保留前 m 位 ⇒ 需要右移 n-m 位;十进制:保留前 m 位 ... 阅读全文
摘要:
Karatsuba 快速乘积算法是具有独特合并过程(combine/merge)的分治算法(Karatsuba 是俄罗斯人)。此算法主要是对两个整数进行相乘,并不适用于低位数(如 int 的 32 位的整数)。1. 大整数乘法的实现所谓的大整数,就是超出编程语言关... 阅读全文
摘要:
Karatsuba 快速乘积算法是具有独特合并过程(combine/merge)的分治算法(Karatsuba 是俄罗斯人)。此算法主要是对两个整数进行相乘,并不适用于低位数(如 int 的 32 位的整数)。1. 大整数乘法的实现所谓的大整数,就是超出编程语言关... 阅读全文
摘要:
进位(carry),借位(borrow);1. 加减 以下仅讨论,两位数的四则运算的情况;加:进位,在之前没有进位的情况下,9+9=18,最高进 1 位,两数相加,不可能进出一个 2 出来,两数相加都不可能进出一个 2 出来; 进位是从低位开始,加数和被加数的两... 阅读全文
摘要:
进位(carry),借位(borrow);1. 加减 以下仅讨论,两位数的四则运算的情况;加:进位,在之前没有进位的情况下,9+9=18,最高进 1 位,两数相加,不可能进出一个 2 出来,两数相加都不可能进出一个 2 出来; 进位是从低位开始,加数和被加数的两... 阅读全文
摘要:
本文仅求对数的整数部分:int log(int n, int base){ int i = 1, cnt = 0; while (i*base < n){ i *= base; ++cnt; } return cnt... 阅读全文
摘要:
本文仅求对数的整数部分:int log(int n, int base){ int i = 1, cnt = 0; while (i*base < n){ i *= base; ++cnt; } return cnt... 阅读全文