美文网首页
一些边界情况的处理

一些边界情况的处理

作者: ad19b033a300 | 来源:发表于2017-04-10 19:18 被阅读73次

程序的边界情况(有时候也叫退化情况),不是经常遇见。有些边界情况对结果影响不大,有些却能产生莫名其妙的结果。只要用的人多了,一般都能遇见。有些边界情况很常见。


sqrt:这是一个求二次根号的数学函数,要求输入是一个非负数。有些理论上看起来的非负数,有时候也会出错。

- 1 - cos(theta) * cos(theta):这个式子用于已知cos(theta),求sin(theta)的时候

- 1 - vec0 * vec1: vec0和vec1是两个单位向量,它俩的内积有可能大于1

- 线段L在一个方向上的投影,也是一条线段Pro(L)。Pro(L)的长度有可能大于L的长度

对于输入有要求的函数,最好检查一下输入的范围,避免输入越界。


精度溢出:求两个向量V0和V1的夹角 - V0 * V1/ (||V0|| * ||V1||)。这么写有可能产生精度溢出。可以先单位化向量再求角度。


数组std::vector访问元素时,最好用at,不要用[]。有时候数组越界访问,会产生莫名奇妙的结果。比如,访问的元素作为一个迭代方法的初值,那么,数组越界的时候,有时候迭代会收敛,有时候又不收敛。很难调试。一般情况at并不会产生性能下降。


没有什么情况是一定不会发生的,出错的情况都是作者没有想到的情况。所谓异常,都是意料之外的情况。避免盲目自信,可以有效减少边界情况出错的几率。

相关文章

  • 一些边界情况的处理

    程序的边界情况(有时候也叫退化情况),不是经常遇见。有些边界情况对结果影响不大,有些却能产生莫名其妙的结果。只要用...

  • Vue 处理边界情况

    访问根实例 1 .this.$root2 .所有的子组件都可以将这个实例作为一个全局的store来访问或者使用3 ...

  • vue 处理边界情况

    访问根级组件实例 $root $root访问的是根节点的属性,小型项目可以用在根节点设置属性等提供给子页面调用,...

  • 【vue学习】处理边界情况

    访问元素 & 组件 在绝大多数情况下,我们最好不要触达另一个组件实例内部或手动操作 DOM 元素。不过也确实在一些...

  • 准备——处理组件边界情况

    官方网站[https://cn.vuejs.org/v2/guide/components-edge-cases....

  • VUE复习笔记17(边界处理情况)

    这里记录的都是和处理边界情况有关的功能,即一些需要对 Vue 的规则做一些小调整的特殊情况。不过注意这些功能都是有...

  • 封装Vue.js组件库

    处理组件的边界情况 $root $parent $children $refs 依赖注入 provide / in...

  • LeetCode-Simplify Path

    题目要求:路径简化Example: 最主要的是边界情况的处理:处理思路:利用vector存储每个有效路径单元如"/...

  • 33. Search in Rotated Sorted Arr

    题目 分析 老题了,就不多写了,二分+注意边界条件,如果不确定边界条件把所有的情况都列出来,再将相同处理的情况进行...

  • Android 手势处理

    手势处理有两种中:触摸和手势处理; 触摸适合简单的情况:按下,抬起,移动,取消,移除边界。 @Overridepu...

网友评论

      本文标题:一些边界情况的处理

      本文链接:https://www.haomeiwen.com/subject/qtkeattx.html