2019-08-25 09:42阅读: 2612评论: 1推荐: 0

为什么 Python 的 Range 要设计成左闭右开?

一般来说:表示 2,3,...,12 这一串自然数有以下四种方法:

a)2 ≤ i < 13

b)1 < i ≤ 12

c)2 ≤ i ≤ 12

d)1 < i < 13

先说下原因有5点:

  • Mesa(参考文献1)实际应用效果,第一种好;
  • a,b前两种上下边界之和刚好等于数列长度;
  • 表示相邻数列时,前数列的上边界与后边界的下边界相等 ([2,13) 与 [13,15) 相邻或(1,12]和(12,15]))
  • 如果采用b,那在表示自然数时会不自然起来,因为最小的自然数是零,要表示从零开始的数,下边界的数就得是-1,(-1,5] 与第一种方法的 [0,6) 相比,显然a好;
  • 在二分法使用中,区间为[2,8],左右区间为[2,5],[5,8],5多了,算法的结果不准,有的人说可以这样写[2,5],[6,8]。是可以,但是在二分的时候还要对数据做处理才能分区间。

参考链接:

https://www.cs.utexas.edu/users/EWD/transcriptions/EWD08xx/EWD831.html

https://www.jianshu.com/p/5eaa330788e8

https://www.zhihu.com/question/24883243

本文作者:benjieqiang

本文链接:https://www.cnblogs.com/benjieqiang/p/11406982.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   benjieqiang  阅读(2612)  评论(1编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
🔑
  1. 1 蒹葭(古筝版) 徐潮城
蒹葭(古筝版) - 徐潮城
00:00 / 00:00
An audio error has occurred.

作词 : 诗经

作曲 : 徐潮城

蒹葭-徐潮城

编:刘文

蒹葭苍苍白露为霜

所谓伊人在水一方

溯洄从之道阻且长

溯游水中央

蒹葭萋萋白露未晞

伊人在水湄

溯洄从之道阻且跻

溯游水中坻

蒹葭苍苍白露为霜

所谓伊人在水涘

伊人在水一方

蒹葭采采白露未已

溯洄从之道阻且右

溯游水中沚

蒹葭萋萋白露未晞

伊人在水湄

溯洄从之道阻且跻

溯游水中坻

蒹葭苍苍白露为霜

所谓伊人在水涘

伊人在水一方

蒹葭采采白露未已

溯洄从之道阻且右

溯游水中沚

蒹葭苍苍白露为霜

所谓伊人在水涘

伊人在水一方

蒹葭采采白露未已

溯洄从之道阻且右

溯游水中沚