使用De Morgan法则来理解代码
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法则来理解代码相关推荐
- 使用De Morgan德摩根定律理解代码
德摩根定律 非(P 且 Q)=(非 P)或(非 Q) 非(P 或 Q)=(非 P)且(非 Q) !(x && y) → !x || !y !(x || y) → !x &&am ...
- 大白话理解德摩根定律(De Morgan‘s Laws)
大白话理解德摩根定律(De Morgan's Laws) 说明 德摩根定律 简介 引理1 引理2 证明 证明的思路 引理1的证明过程 ①证明等式左边集合是等式右边集合的子集 ②证明等式右边集合是等式左 ...
- MMIT冠军方案 | 用于行为识别的时间交错网络,商汤公开视频理解代码库
作者 | 商汤 出品 | AI科技大本营(ID:rgznai100) 本文主要介绍三个部分: 一个高效的SOTA视频特征提取网络TIN,发表于AAAI2020 ICCV19 MMIT多标签视频理解竞赛 ...
- 编写易于理解代码的六种方式
http://www.ibm.com/developerworks/cn/linux/l-clear-code/ 我学习编写.改善和维护代码的过程是很艰苦的.在过去的 12 年里,我一直在编写计算机游 ...
- 云栖专辑 | 阿里开发者们的第3个感悟:从身边开源开始学习,用过才能更好理解代码
2015年12月20日,云栖社区上线.2018年12月20日,云栖社区3岁. 阿里巴巴常说"晴天修屋顶". 在我们看来,寒冬中,最值得投资的是学习,是增厚的知识储备. 所以社区特别 ...
- PySlowFast 视频理解代码库
PySlowfast 是 FAIR 开源的基于 PyTorch 的视频理解代码库,让研究者可以轻而易举地复现从基础至前沿的视频识别 (Video Classification) 和行为检测 (Acti ...
- 【科研导向】Outer Product-based Neural Collaborative Filtering (ConvNCF)基于外积的神经协同过滤<论文理解代码分析>
Outer Product-based Neural Collaborative Filtering--IJCAI'18 文章简介 一.摘要解析 二.技术要点 三.实验部分 代码解析 一.模型构建 二 ...
- 【科研导向】Neural Collaborative Filtering 神经协同过滤 <论文理解代码分析>
Neural Collaborative Filtering--WWW'17 文章简介 一.摘要解析 二.技术要点 三.实验部分 代码解析 一.模型构建 二.难点问题 未来展望 文章简介 该文由何向南 ...
- 多元函数链导法则的理解
多元函数链导法则的理解 多元函数的链导法则: 设有复合函数 z = z ( u 1 , ⋯ , u n ) , u i = u i ( x 1 , ⋯ , x 2 ) , i = 1 , 2 , ...
最新文章
- 20 位百万富翁希望自己 20 岁就明白的事
- 带限制条件的最大子矩阵 - 牛客
- combobox的使用
- Linux 上 GDM 登录界面如何适应高分屏
- GDB调试——常用命令
- 如何使用CPU来加速你的Linux命令
- 【BZOJ-2937】建造酿酒厂 前缀和 + 展环为链 + 乱搞
- 解析ajax数据显示到from表单中,jQuery Ajax从另一页上的Form请求中提取数据?
- GitHub 的简单使用
- Java 集合系列04之 fail-fast总结(通过ArrayList来说明fail-fast的原理、解决办法)
- 2021-08-24自然语言处理预训练模型的研究综述 - 知网论文
- Jetson TX1开发笔记(三):开发利器-Nsight Eclipse Edition
- 从零开始学android:环境搭建
- jsonViewer json格式化工具
- 索引及其背后的数据结构(顺带介绍了一下子查询和合并查询)
- 《软技能(代码外的生存指南)》读书笔记——持续更新
- 08 网上爬取的数据如何制作成表
- JAVA商城 B2B2C商城系统 多用户商城系统 直播带货 新零售商城 o2o商城 电子商务 拼团商城 分销商城 直播商城 短视频商城 springcloud商城 spring cloud商城
- 串口调试助手中设置快捷键
- 一个有用的命令jcmd