摘要: 一、测试与正确性论证 程序测试是指通过编写测试样例来针对性的验证程序功能的正确性,而正确性论证则严格的多,正确性证明的基本思想是证明程序能完成预定的功能。因此,应该提供对程序功能的严格数学说明,然后根据程序代码证明程序确实能实现它的功能说明。由于测试样例对程序功能难以做到百分百覆盖,难免有点以偏概全 阅读全文
posted @ 2018-06-25 16:33 Nipo 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 一、规格化设计 规格就是对一个方法/类/程序的外部可感知行为的抽象化表示,忽略实现的具体细节,使得设计与实现有效的分离开来。规格化设计的实现依赖于抽象化(Abstraction),包括过程抽象,数据抽象等等。使用规格化设计带来的好处就是减少了程序的复杂度,使得程序员可以专注于处理少数重要的部分,而不 阅读全文
posted @ 2018-05-28 20:07 Nipo 阅读(158) 评论(0) 推荐(0) 编辑
摘要: OO第二阶段开了新坑,可以说难度又上了一个新的高度,导致我又要面临的一到两个星期的学习与适应多线程的编程方法。 第五次作业还好,是在原有的比较完善的电梯系统的基础上引入多线程,但为了实现项目要求却也颇具周折。 第五次作业 第五次作业为了保证多线程之间的原子性与互斥,直接新建了一个shareData类 阅读全文
posted @ 2018-05-02 20:33 Nipo 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 初学OO,上手并没有想象中的那么复杂,因为有了C语言的基础,所以在语法上很快就接收了,但面向对象的思想确实晦涩,经过三次课下作业终于有了点心得体会。 第一次作业 第一次作业是关于多项式加减法,要求使用JAVA编写能够实现多项式加减的面向对象程序,结果写出来,个人感觉只是多了一个类,面向对象?不存在的 阅读全文
posted @ 2018-04-02 20:11 Nipo 阅读(189) 评论(0) 推荐(0) 编辑
摘要: CRT描述 JAVA代码 阅读全文
posted @ 2017-11-08 19:41 Nipo 阅读(1758) 评论(0) 推荐(0) 编辑
摘要: 一、问题描述 在模算数计算中,我们常常要对大整数模m和大整数n,计算bn(mod m).如果递归计算bn = (bn-1(mod m))·b(mod m),这种计算较为费事,须作n - 1次乘法。而使用模平方计算法可以显著降低算法复杂度。 二、算法描述 欲求bn(mod m),设a = 1 1. 先 阅读全文
posted @ 2017-10-24 14:52 Nipo 阅读(10138) 评论(0) 推荐(1) 编辑
摘要: 一、题目描述 设有一个算法Median能在O(n)的时间内计算一个数组的中位值(即将数组的元素按大小顺序排列正好位于中间的值)。给定一个有n个元素的数组,能否以Median算法为基础设计一个算法,对任意的整数1≤i≤n,该算法在O(n)的时间内求出数组中第i大小的元素。如果能,请给出一个这样的算法并 阅读全文
posted @ 2017-10-20 10:21 Nipo 阅读(337) 评论(0) 推荐(0) 编辑
摘要: 一、问题描述 令A[1..n]是一个由n个数所组成的数组。序列A[1], A[2], … , A[n]被称为是单模的(unimodal),当且仅当存在顶点序号1≤p≤n,使得数组的元素从A[1]、A[2]开始到A[p]单调增加,而从A[p]、A[p+1]开始到A[n]则单调下降。对于一个给定的单模序 阅读全文
posted @ 2017-10-12 23:36 Nipo 阅读(445) 评论(0) 推荐(0) 编辑
摘要: 一、问题描述 令A[1...n]是一个由n个数组成的数组,定义为数组A的插值,其中|a| 表示a的绝对值。设计一个求数组插值的算法(用伪码描述)并分析算法的时间复杂度。 二、解决方案 核心思想: 将求数组差值问题转换为熟知的求数组最大连续子序列和问题。 实现过程: 数组A有n个元素如下:[A0,A1 阅读全文
posted @ 2017-09-28 21:22 Nipo 阅读(1097) 评论(2) 推荐(0) 编辑
摘要: 初识JAVA是在大一上学期期末,主要是从慕课上学习JAVA的基本语法。其实感觉大可不必,大一下学期在数据结构课上对C语言的深度学习,其实已经将C语言的语法结构了解透彻,数据结构也有了更加深入的理解。而JAVA在语法上与C语言大同小异,而其核心是面向对象。 JAVA给我印象最深的地方就是各种各样的方法 阅读全文
posted @ 2017-07-27 18:45 Nipo 阅读(529) 评论(0) 推荐(0) 编辑