java 递归算法伪代码,从伪代码实现递归(NTRUE加密)
我需要实施NTRU公钥密码系统作为我最后一年大学项目的一部分。我试图实现一个算法,通过递归乘以长多项式,但是我在试图理解伪代码时陷入了困境。从伪代码实现递归(NTRUE加密)
Algorithm PolyMult(c, b, a, n, N)
Require: N, n, and the polynomial operands, b and c.
PolyMult returns the product polynomial a through the argument list
PolyMult(a,b,c,n,N)
{
1. if(...)
2. {
3. ...
4. ...
5. ...
6. ...
7. }
8. else
9. {
10. n1 = n/2;
11. n2 = n-n1;
12. b = b1+b2*X^(n1);
13. c = c1+c2*X^(n1);
14. B = b1+b2;
15. C = c1+c2;
16. PolyMult(a1,b1,c1,n1,N);// a1 = b1*c1
17. PolyMult(a2,b2,c2,n2,N);// a2=b2*c2
18. PolyMult(a3,B,C,n2,N);// a3 = B*C=(b1+b2)*(c1+c2)
19. a = a1 + (a3-a1-a2)*X^(n1) + a2*X^(2*n1);
20.}
}
请注意,N,n,n1和n2都是int类型。 a,a1,a2,b,b1,b2,c,c1,c2,B,C都是多项式,用数组表示。
在第16,17和18行,调用函数PolyMult,参数为a1,b1,c1,n1,N然后是a2,b2,c2,n2,N,最后是a3,B,C,n2,N分别。我已经在第16行之前初始化了数组a1,b1,c1,然后我将它们传递给PolyMult本身(递归从这里开始!)并返回一个答案并将它存储在某个临时数组中,比如说我实现了第16行,如下所示:
int z[] = PolyMult(a1,b1,c1,n1,N);
现在我问题是:当将存放在数组z []在程序中再次使用多项式,我看不出有任何迹象表明它会从伪代码再次使用,但如果数组z程序中不再使用[],第16行和递归的关键是什么?我应该如何实施16-18线?
所以要重复一次,在程序中何时以及如何再次使用存储在数组z中的多项式?我应该如何去实施16-18线?
java 递归算法伪代码,从伪代码实现递归(NTRUE加密)相关推荐
- JAVA入门级教学之(方法递归)
目录 JAVA入门级教学之(方法递归) 1.关于方法的递归调用: 2.递归是很耗费栈内存的,递归算法可以不用的时候尽量别用 3.以下程序运行的时候发生了这样的一个错误[不是异常,是错误] 4.递归必须 ...
- java递归算法[32]
java递归算法[32] 文章目录 java递归算法[32] 一.递归定义 二.代码演示 三.递归理解图 四.小结 一.递归定义 递归算法:方法本身调用自己. 1.递归必须要有出口. 2.递归内存消耗 ...
- java古典兔子问题c语言,Java递归算法经典实例(经典兔子问题)
Java递归算法经典实例(经典兔子问题) 题目:古典问题:3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 分析:首先我们要明白题目的意思 ...
- Java 二叉树后序遍历(递归/非递归)
Java 二叉树后序遍历(递归/非递归) 简介: 遍历是对树的一种最基本的运算,所谓遍历二叉树,就是按一定的规则和顺序走遍二叉树的所有结点,使每一个结点都被访问一次,而且只被访问一次. 设L.D.R分 ...
- Java兔子生兔子问题(递归法)
Java兔子生兔子问题(递归法) 该问题与上楼梯的问题一样,是从反方向思考推导递归公式 /**生兔子问题 * 问题描述: * 新诞生的兔子三个月后会每个月都会产小兔子 * 即: 1 1 2 3 5 8 ...
- java基础练习复习二:递归字节流字符流二
本篇是基于java基础练习复习一:递归&字节流&字符流一, 如果对您有帮助 ,请多多支持.多少都是您的心意与支持,一分也是爱,再次感谢!!!打开支付宝首页搜"55672346 ...
- Java 二叉树中序遍历(递归/非递归)
Java 二叉树中序遍历(递归/非递归) 中序遍历 代码实现 递归方式 非递归方式 简介: 遍历是对树的一种最基本的运算,所谓遍历二叉树,就是按一定的规则和顺序走遍二叉树的所有结点,使每一个结点都被访 ...
- [译] 最佳安全实践:在 Java 和 Android 中使用 AES 进行对称加密
原文地址:Security Best Practices: Symmetric Encryption with AES in Java and Android 最佳安全实践:在 Java 和 Andr ...
- 128位java_求一个java算法,用128位密钥的AES加密128位明文,得出的密文还是128位...很着急,非常感谢各位大神,求救!...
求一个java算法,用128位密钥的AES加密128位明文,得出的密文还是128位...很着急,非常感谢各位大神,求救! 关注:157 答案:1 mip版 解决时间 2021-02-03 09:1 ...
最新文章
- python socket 简介
- C++读写局域网共享
- 学习笔记Flink(八)—— 基于Flink 在线交易反欺诈检测
- 公众号获取用户手机号_小程序中如何获取微信用户绑定的手机号
- 项目打包publicpath_将项目部署至github和码云
- java成员内部类_Java中的内部类(二)成员内部类
- mysql根据已有表创建新表_SQL根据现有表新建一张表
- HP服务器集成 iLO 端口的配置
- 闲置商标转让怎样管理最好?
- (Java)预测身高案例
- 知识表示学习研究进展
- 计算机不断自动重启,电脑不断自动重启怎么办_解决电脑不断自动重启的方法...
- MySQL数据库实操教程(25)——权限管理
- 7.1—查找—Sear for a Range
- nisp一级练习题及答案
- spring-mybatis.xml 里mapperLocations 配置多路径
- verilog “function”函数一直报错解决办法
- OpenGL之路(一)OpenGL、gl、glu、glut的区别 + glut环境的搭建
- 兴趣图谱必将重塑社交网络及电子商务
- W ndows7旗舰版RTM,Windows 7 RTM Build各版ISO详细介绍
热门文章
- 如何提高用户体验之某费控独角兽公司的分享-现场分享
- oracle中修改sga和pga
- MySQL长事务处理办法
- pytorch_LSTM_写诗
- linux和window时间不一致,linux时间与Windows时间不一致的解决
- Java 中 UTC 如何转换 CST(北京时间)
- 迎新:Apache IoTDB喜迎1位PMC和4位Committer
- WebSocket实现app扫描二维码登录
- 京东发布第三季度财报员工总数近50万 “以实助实”助力高质量就业
- 获取虚拟账号列表失败啥意思_读取服务器列表失败