自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 关于随机数的生成

文章目录一个库函数和一个基本问题两种写法和权威人士的选择分析 一个库函数和一个基本问题 C语言提供了rand()函数来生成[0, RAND_MAX]区间内的随机整数. 使用之前需要种种子, 否则生成的第一个随机数永远和宇宙的终极答案差那么一点. 这里就不赘述了. rand函数 但这种简单的功能显然不能满足众多计算机科学家的需要, 一般情况下, 我们需要一个优质的随机数生成器, 它可以生成[a, b]区间内的整数. 声明为: int randPro(int a, int b); 如何实现这个函数呢? 分歧就

2020-08-03 13:23:54 271

原创 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 151

原创 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 255

原创 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 276

原创 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 144

原创 动态规划(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=1n​wi​...

2020-03-19 21:33:22 138

原创 动态规划(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 485

原创 Java中的映射值修改问题

1. 有趣的Java Java是个有意思的东西,为了安全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 544 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 81

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除