欧几里得算法(辗转相除法); 欧几里得算法拓展 使用快速幂取余是切记所有的变量的类型都必须是longlong,否则会导致数据溢出。 指针与引用的混合。 int i; int *a = &i; //这里a是一个指针,它指向变量i int &b = i; //这里b是一个引用,它是变量i的引用(别名) ...
分类:
编程语言 时间:
2020-11-20 11:56:50
阅读次数:
10
已知p,q,e求d p=473398607161 q=4511491 e=17 n = (p-1) * (q-1) def extendedEuclid(a, b): if b == 0: return 1, 0 else: x, y= extendedEuclid(b, a % b) x, y = ...
分类:
其他好文 时间:
2020-06-25 19:08:44
阅读次数:
66
文章转自新浪博客@任家 正文: RSA是第一个也是使用的最广泛的公钥加密算法,在1978年由R.Rivest、AdiShamir和Adleman三人发明, 并以他们的名字命名。RSA算法的安全性基于大数因子分解的困难性,下面介绍一下它的基本原理: 1、生成公钥和私钥 (1)选取两个大素数:p和q; ...
分类:
编程语言 时间:
2020-06-19 14:05:42
阅读次数:
385
类欧几里得算法 对于给定的元$a,b,c,n$ 设$f(i)=\lfloor\frac{ai+b}\rfloor$ 求 \(F(a,b,c,n)=\sum_0^nf(i)\) \(G(a,b,c,n)=\sum_0^nf(i)^2\) \(H(a,b,c,n)=\sum_0^ni\cdot f(i) ...
分类:
编程语言 时间:
2020-06-05 15:21:54
阅读次数:
376
摘自:http://www.ruanyifeng.com/blog/2013/07/rsa_algorithm_part_two.html 上一次,我介绍了一些数论知识。 有了这些知识,我们就可以看懂RSA算法。这是目前地球上最重要的加密算法。 六、密钥生成的步骤 我们通过一个例子,来理解RSA算法 ...
分类:
编程语言 时间:
2020-03-18 13:51:19
阅读次数:
65
引入 解决 用O(logn)的算法求f(a,b,c,n)。 这个式子和我们以前见过的式子都长得不太一样。带向下取整的式子容易让人想到数论分块,然而数论分块似乎不适用于这个求和。但是我们是可以做一些预处理的。 如果说 a>=c或者b>=c,意味着可以将a,b对c取模以简化问题: 问题又回到了a<c&& ...
分类:
编程语言 时间:
2020-03-09 21:04:42
阅读次数:
65
2020年01月27日18:36:47 1. 欧几里得算法 2. 费马小定理 3. 扩展欧几里得算法 4. 欧拉函数 5. 扩展$\textrm {CRT}$ 6. $\textrm{Lucas}$定理 7. 扩展$\textrm{Lucas}$ 8. $\textrm{BSGS}$ 9. $\te ...
分类:
其他好文 时间:
2020-01-28 10:48:57
阅读次数:
85
求$\sum_{x=0}^{n 1}\lfloor \frac{ax+b}{c} \rfloor$ 设$f(a,b,c,n)=\sum\limits_{x=0}^{n 1}\lfloor \frac{ax+b}{c} \rfloor$ 进行化简,得 $$ \begin{aligned} &f(a,b ...
分类:
编程语言 时间:
2020-01-22 22:01:04
阅读次数:
84
中国剩余定理 CRT 一.什么是CRT? ? CRT是用来解决线性同余方程组的求解的算法。它的前提是所有的模数互质就好。同时也是唯一一个以中国开头的算法(作为中国人要好好学呀)。 二.算法流程 ? 首先从老祖宗的角度出发,他们当时解决的是这样一个问题。(为什么老祖宗这么强Orz) 三人同行七十稀 五 ...
分类:
其他好文 时间:
2020-01-22 20:15:14
阅读次数:
112
题目 3在十进制下满足若各位和能被3整除,则该数能被3整除。 5在十六进制下也满足此规律。 给定数字k,求多少进制(1e18进制范围内)下能满足此规律,找出一个即可,无则输出 1。 题解 写写画画能找到规律,即是求与k互质的数x,x进制下即能满足上述规律。 相关 求最大公约数:辗转相除法(又叫欧几里 ...
分类:
编程语言 时间:
2019-12-14 19:27:58
阅读次数:
107