range(int start, int end, int step); 返回的区间是 [start, end) 要求步长为 step,三个参数均为整数,

在底层实现时,最终返回的区间元素的数目应当为多少,要分情况讨论。为简化问题,设 start, end, step 三个参数对应的数学符号为 x,y,d,再令 yxd 的整数部分为 k,则分情况讨论:

  • yxd=k 时,也即恰好整除时,则返回的区间元素构成为:

    x,x+d,,x+(k1)d长度为 k;

  • yxd>k 时,返回的区间元素构成为:

    x,x+d,,x+kd长度为 k+1;

posted on 2017-03-11 23:10  未雨愁眸  阅读(750)  评论(0编辑  收藏  举报