一个简单的算法题
2006-10-27 12:20
232 查看
昨天看到一道算法题,是说RSA加密的,大致的原理是,对于给定的三个正整数a,b,c,计算a的b次方除以C的余数。其中1<=a b<c<=32768
可以看到,如果用一般的直接算法,会设计到高精度乘法,十分麻烦,而经过查看数学书,可以看到同余方面有如下的性质,
(x*y) mod z= (x*(y mod z)) mod z
比如 (3*9) mod 2=1
而 (3*(9 mod 2)) mod 2=1
所以可以编制程序为
d:=1;
for i:=1 to b do
d:=d*a mod c;
writeln(d);
即可解决问题,呵呵,可以看到数学的力量
可以看到,如果用一般的直接算法,会设计到高精度乘法,十分麻烦,而经过查看数学书,可以看到同余方面有如下的性质,
(x*y) mod z= (x*(y mod z)) mod z
比如 (3*9) mod 2=1
而 (3*(9 mod 2)) mod 2=1
所以可以编制程序为
d:=1;
for i:=1 to b do
d:=d*a mod c;
writeln(d);
即可解决问题,呵呵,可以看到数学的力量
相关文章推荐
- 一个计算简单数学表达式值的算法。
- 一个简单的算法题9.4
- 一个简单的子集产生算法
- 一个简单的波形包络提取算法
- 一个简单的多机器人编队算法实现--PID
- 一个简单的概率算法
- 【技术收藏】enpaodelvzi编写:一个Java写的俄罗斯方块源码 算法简单(300行) 注释详细
- 漫水填充算法的一个简单实现(Qt版)
- 一个简单算法的设计(一个数组中连续区间和的最大值)
- 一个简单的统计图像主颜色的算法(C#源代码)
- 一个简单的镜头稳定算法
- 一个简单的实现找出数组中一个数字出现次数最多的数字的算法
- Opnet 一个简单的网络实现Dijkstra最短路径算法,路径代价为跳数加排队延时
- SSE图像算法优化系列十:简单的一个肤色检测算法的SSE优化。
- 水下图像增强相关算法的一个简单小结。
- LOJ2254 && bzoj5016 [Snoi2017]一个简单的询问 莫队算法
- 一个简单的多机器人编队算法实现--PID
- 一个简单的算法---实现找出数组中一个数字出现次数最多的数字
- 一个简单的JavaScript 日期计算算法
- 一个简单的抽奖算法