- 博客(9)
- 收藏
- 关注
原创 关于随机数的生成
文章目录一个库函数和一个基本问题两种写法和权威人士的选择分析一个库函数和一个基本问题C语言提供了rand()函数来生成[0, RAND_MAX]区间内的随机整数. 使用之前需要种种子, 否则生成的第一个随机数永远和宇宙的终极答案差那么一点. 这里就不赘述了.rand函数但这种简单的功能显然不能满足众多计算机科学家的需要, 一般情况下, 我们需要一个优质的随机数生成器, 它可以生成[a, b]区间内的整数. 声明为:int randPro(int a, int b);如何实现这个函数呢? 分歧就
2020-08-03 13:23:54
277
原创 Java with OOP: 可维护性
目录1. SOLID原则2. GRASP原则1. SOLID原则单一责任原则(SRP)Single Responsibility Principle不应有多于一个的原因时得一个类发生变化即一个类只应该有一个责任开放封闭原则(OCP)Open/Closed Principle模块对于扩展是开放的, 但对于修改是封闭的即可以在不更改源代码的情况下改变行为里氏替换原则(LSP)略接口隔离原则(ISP)Interface Segregation Principle客户端不应依赖于它
2020-06-21 16:23:22
160
原创 Java with OOP: 可复用性
目录1. 继承1.1 子类型多态1.2 Liskov替换原则(LSP)1.3 Java泛型中的继承规则2. 委派2.1 复合重用原则(CRP)2.2 委派类型2.3 库和框架*3. 实例: 给Java列表(`List`)排序天下代码一大抄—by 夫1. 继承1.1 子类型多态逻辑上, 子类 is-a 父类.因此在任何可以使用父类实例的场合, 都可以使用子类实例替换而不会有任何问题, 这就是子类型多态的概念.1.2 Liskov替换原则(LSP)为了实现子类型多态性, 子类型应满足:子
2020-06-21 16:03:57
264
原创 Java fights bugs: 断言和日志
目录1. 断言1.1 启用断言1.2 断言语句1.3 何时使用断言 / 何时不该使用断言2. 日志2.1 逻辑结构2.2 日志级别2.3 日志记录器(Logger)2.4 日志记录器与日志处理器2.5 日志处理器(Handler)2.6 过滤器2.7 日志配置文件1. 断言强迫症程序员的福音在我们的程序中, 有时:命题A必然为真命题A必然为真的原因或为spec要求它为真, 或为程序逻辑使得它为真程序的其他部分对A的真实性有着依赖但我们害怕或由于使用ADT的人没有遵守spec, 或由于编
2020-06-18 14:22:00
288
原创 Java fights bugs: 错误和异常处理
目录1. 错误和异常2. 异常处理2.1 创建异常类2.2 声明异常2.3 抛出异常(throw)2.4 捕获异常(catch)2.4.1 try(-catch)*块2.4.2 try(-catch)*(-finally)?块2.4.3 try-with-resource(-catch)*(-finally)?块2.5 调用栈轨迹(stack trace)1. 错误和异常Throwable顾名思义, "可抛出的"类都派生于Throwable类//默认的构造器, 没有异常信息, 但也不是什么都不做T
2020-06-18 12:24:21
147
原创 动态规划(3): 0-1背包问题
1. 问题描述输入: n组输入<vi, wi>(vi, wi > 0)(value 价值, weight 重量), 最大重量 C;输出: 一组代表选择的序列<x1, x2, …, xn>, 其中 xi ∈ {0, 1}, 即代表选择 / 不选择,使得下面两个条件成立:Σi=1nwixi≤C\Sigma_{i = 1}^{n} w_ix_i ≤ CΣi=1nwi...
2020-03-19 21:33:22
143
原创 动态规划(2): 最长公共子序列(LCS)问题
0.前置定义0.1 子序列一个给定序列的子序列,就是将给定序列中零个或多个元素去掉之后得到的结果.例: X = <A, B, C, B, D, B>Z = (B, C, D, B) 是X的子序列W = (B, D, A) 不是X的子序列0.2 公共子序列给定两个序列X和Y, 如果Z既是X的子序列,又是Y的子序列,称它是X和Y的公共子序列.0.3 前缀,第i前缀给定一个...
2020-03-19 19:16:15
505
原创 Java中的映射值修改问题
1. 有趣的JavaJava是个有意思的东西,为了安全Java里没有指针,但是好像实际上处处都是指针2. 一段代码import java.util.HashMap;import java.util.HashSet;public class justForTest { public static void main(String[] args) { //case 1 H...
2020-03-05 13:57:31
555
1
原创 排序
排序输⼊: 待排序的数组a[], 元素个数n输出: 已排序的数组a[]1. 插入排序n-1趟排序0<i<n第i趟排序处理a[i], 前i个元素有序, 将a[i]插⼊合适的位置void insertsort(int n) { int i, j; int t; for (i = 1; i < n; ++i) { t = a[i]; for (j = i; ...
2020-02-25 12:48:51
84
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人