未定义行为:不只是编程语言
来源:互联网 发布:伤感歌曲网络歌曲大全 编辑:程序博客网 时间:2024/05/29 16:38
原文地址:https://blog.regehr.org/archives/1438
作者:John Regehr
这是一个老掉牙但好用的桥段。从这个前提开始:
a = b
两边同乘以a:
a2 = ab
两边同减去b2:
a2 – b2 = ab – b2
左边提取公因数:
(a+ b)(a – b) = ab – b2
右边提取公因数:
(a+ b)(a – b) = b(a – b)
两边除以(a-b)并抵消:
a+ b = b
b替换a:
b+ b = b
最后,让b = 1并简化:
2= 1
在我九岁还是十岁时,我就遇到了这个推导,它让我深感不安。“你不可以除以(a- b),因为这个项等于0”的解释,看起来引发了更多的问题。我们如何被假定掌握哪些项等于0?如果某项等于0,但我们不知道会怎么样?在那里还有什么样的小陷阱等着让一个推导失效?许多次我注意到,在学校里,他们看起来愿意教简单的版本,而真实世界从来就不会这么友善,即使在数学里——你可能认为每一样都清晰、精确。
不管怎么说,关键是未定义行为困扰人们远远超过了千年——对我们还没在编程语言里搞定它,我们不应该太沮丧。
阅读全文
0 0
- 未定义行为:不只是编程语言
- C语言未定义行为
- C语言的未定义行为
- C语言未定义行为一览
- C语言未定义行为一览
- C语言中的未定义行为
- c语言中的未定义行为
- C语言的未定义行为
- 编程中的“未定义行为”问题
- 32. 封装行为,不只是状态
- C语言undefined behaviour未定义行为
- C语言undefined behaviour未定义行为
- C语言undefined behaviour未定义行为
- C语言undefined behaviour未定义行为
- C语言undefined behaviour未定义行为
- C语言undefined behaviour未定义行为
- C/C++语言中的未定义行为
- 未定义行为 != 不安全的编程
- 新型PPT钓鱼攻击分析(含gootkit木马详细分析)
- MySql事件
- 直接将datatable插入数据库中
- 文件下载
- javaweb学习总结——监听器(Listener)学习二
- 未定义行为:不只是编程语言
- struts2的s:iterator标签中的status
- 剑指offer面试题25:合并两个排序的链表-java
- 安卓卡片式、数量可变自定义RadioButton
- CSS基本选择器
- java关于函数重载(overload)和函数覆盖(override)区别
- 使用EL表达式获取cookie和cookie中的信息
- mysql批量插入优化
- 关于如何使用js 插件实现打印的功能