De Morgan法则:

!(x && y) → !x || !y
!(x || y) → !x && !y

这有什么用呢?

举个例子,我们来看看这个求三位数中最小值的代码:

if (x < y && x < z)min = x;
else if (y < z)min = y;
elsemin = 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法则来理解代码相关推荐

  1. 使用De Morgan德摩根定律理解代码

    德摩根定律 非(P 且 Q)=(非 P)或(非 Q) 非(P 或 Q)=(非 P)且(非 Q) !(x && y) → !x || !y !(x || y) → !x &&am ...

  2. 大白话理解德摩根定律(De Morgan‘s Laws)

    大白话理解德摩根定律(De Morgan's Laws) 说明 德摩根定律 简介 引理1 引理2 证明 证明的思路 引理1的证明过程 ①证明等式左边集合是等式右边集合的子集 ②证明等式右边集合是等式左 ...

  3. ​MMIT冠军方案 | 用于行为识别的时间交错网络,商汤公开视频理解代码库

    作者 | 商汤 出品 | AI科技大本营(ID:rgznai100) 本文主要介绍三个部分: 一个高效的SOTA视频特征提取网络TIN,发表于AAAI2020 ICCV19 MMIT多标签视频理解竞赛 ...

  4. 编写易于理解代码的六种方式

    http://www.ibm.com/developerworks/cn/linux/l-clear-code/ 我学习编写.改善和维护代码的过程是很艰苦的.在过去的 12 年里,我一直在编写计算机游 ...

  5. 云栖专辑 | 阿里开发者们的第3个感悟:从身边开源开始学习,用过才能更好理解代码

    2015年12月20日,云栖社区上线.2018年12月20日,云栖社区3岁. 阿里巴巴常说"晴天修屋顶". 在我们看来,寒冬中,最值得投资的是学习,是增厚的知识储备. 所以社区特别 ...

  6. PySlowFast 视频理解代码库

    PySlowfast 是 FAIR 开源的基于 PyTorch 的视频理解代码库,让研究者可以轻而易举地复现从基础至前沿的视频识别 (Video Classification) 和行为检测 (Acti ...

  7. 【科研导向】Outer Product-based Neural Collaborative Filtering (ConvNCF)基于外积的神经协同过滤<论文理解代码分析>

    Outer Product-based Neural Collaborative Filtering--IJCAI'18 文章简介 一.摘要解析 二.技术要点 三.实验部分 代码解析 一.模型构建 二 ...

  8. 【科研导向】Neural Collaborative Filtering 神经协同过滤 <论文理解代码分析>

    Neural Collaborative Filtering--WWW'17 文章简介 一.摘要解析 二.技术要点 三.实验部分 代码解析 一.模型构建 二.难点问题 未来展望 文章简介 该文由何向南 ...

  9. 多元函数链导法则的理解

    多元函数链导法则的理解 多元函数的链导法则: ​ 设有复合函数 z = z ( u 1 , ⋯ , u n ) , u i = u i ( x 1 , ⋯ , x 2 ) , i = 1 , 2 , ...

最新文章

  1. 20 位百万富翁希望自己 20 岁就明白的事
  2. 带限制条件的最大子矩阵 - 牛客
  3. combobox的使用
  4. Linux 上 GDM 登录界面如何适应高分屏
  5. GDB调试——常用命令
  6. 如何使用CPU来加速你的Linux命令
  7. 【BZOJ-2937】建造酿酒厂 前缀和 + 展环为链 + 乱搞
  8. 解析ajax数据显示到from表单中,jQuery Ajax从另一页上的Form请求中提取数据?
  9. GitHub 的简单使用
  10. Java 集合系列04之 fail-fast总结(通过ArrayList来说明fail-fast的原理、解决办法)
  11. 2021-08-24自然语言处理预训练模型的研究综述 - 知网论文
  12. Jetson TX1开发笔记(三):开发利器-Nsight Eclipse Edition
  13. 从零开始学android:环境搭建
  14. jsonViewer json格式化工具
  15. 索引及其背后的数据结构(顺带介绍了一下子查询和合并查询)
  16. 《软技能(代码外的生存指南)》读书笔记——持续更新
  17. 08 网上爬取的数据如何制作成表
  18. JAVA商城 B2B2C商城系统 多用户商城系统 直播带货 新零售商城 o2o商城 电子商务 拼团商城 分销商城 直播商城 短视频商城 springcloud商城 spring cloud商城
  19. 串口调试助手中设置快捷键
  20. 一个有用的命令jcmd

热门文章

  1. React Router 4 简易入门
  2. 小程序-Now you can provide attr wx:key for a wx:for to improve performance
  3. 你离脱单之间只差一个表白神器 难道就不想遇到契合的灵魂相守一生
  4. win10如何查看系统盘分区表类型
  5. 交叉熵(Cross-Entropy)
  6. 单片机数组前的code的作用
  7. C#上位机开发(十五)—— 计算字符串哈希值和文件哈希值
  8. 用原生JS实现爱奇艺首页导航栏
  9. 【Unity3D开发小游戏】《打砖块》Unity开发教程
  10. matplotlib中subplot的用法