使用De Morgan法则来理解代码
来源:互联网 发布:小朋友下围棋软件 编辑:程序博客网 时间:2024/06/08 15:34
De Morgan法则:
!(x && y) → !x || !y!(x || y) → !x && !y
这有什么用呢?
举个例子,我们来看看这个求三位数中最小值的代码:
if (x < y && x < z) min = x;else if (y < z) min = y;else min = z;
很多初学者(包括以前的我)对上面的逻辑感到难以理解,总是感觉似是而非。
我们现在利用De Morgan法则来看看,
第一条if,判断x < y && x < z,如果是真则最小值是x,这很好理解,关键是下面执行到else if (y < z)的条件是什么呢?自然是!(x < y && x < z)=x>=y || x >=z,所以如果运行到此步,就说明x一定比y,z这两个数的其中一个大,所以一定不是最小值,排除掉,接下来只要再判断y和z的大小就行了。
- 使用De Morgan法则来理解代码
- 使用De Morgan法则来理解代码
- 使用De Morgan德摩根定律理解代码
- De Morgan's laws
- nodejs 模块理解系类: morgan
- 德·摩根定律的验证(De Morgan’s Laws)
- 代码干货 | 数据过滤器使用法则
- struts de mvc 结构理解
- Xml De-Serialize使用
- 理解五条叠加法则,自由使用层的叠加
- 使用《Playground》来调试代码
- 使用github来提交代码
- de
- de
- spinlock自旋锁de使用
- 进程虚拟地址空间de理解
- assert和de-assert的理解
- 简洁代码书写法则
- Java中math的方法举例
- 2011年5月的小薛
- 两个数据库不在同一台数据库服务器上操作方法
- PAGEENCODING与CONTEXTTYPE的一点总结
- Java中Overload和Override的区别
- 使用De Morgan法则来理解代码
- 关于fota(1)
- 在winForm窗体上加上DialogResult作为返回值
- Why why why why why am i a developer?
- 黑马程序员 (7)JAVA高新技术 1
- Java中覆盖toString()
- POJ 1844 Sum
- Repeater 批量删除
- 关于断言与错误处理,以及测试用例的设计