基数与序数的规律
对于一个数据, 要先判断是基数还是序数, 如果要计数,还要考虑是否包括边界
- 基数: 绝对的,有一个基底数, 日常生活中基底是1; 编程中一般是0; 常见的基数概念有 数量, 个数, 体积, 面积, 时间段, 年龄(周岁), 分数
- 序数: 相对的, 表示先后顺序, 常见的概念: 位次, 时间点
- 端点的开闭规律: 全开
基本的转换规律: 基数 = 序数 - based + 1
常见场景
- 从日常的1-based转换成0-based:
访问“第n个元素”时,索引是 n-1 - 计算从第m到第n之间的数量为
n-m - 端点的开闭规律: 若要截取从第
m到第n个元素(1-based)- 半开半闭区间, 实际索引范围是
[m-1, n), 个数是n-m - 全开区间, 实际索引范围是
(m, n), 个数是n-m-1 - 全闭区间 , 实际索引范围是
[m-1, n-1], 个数是n-m+1
- 半开半闭区间, 实际索引范围是
- 字符串长度为
len,最后一个字符的索引是len - 1(因0-based) - 一个序数可以加减一个基数, 表示顺序的移动