计数并不容易。假设老板让你从早上8点到11点工作,并且拖地8到11楼。简单——每小时一层楼,对吧?
不对!有4层楼要拖(8、9、10、11),但只有3小时工作时间(8-9、9-10和10-11)。
哇——我们数楼层和小时的方式不一样?当然。不知何故,如果老板说"在4月8日至11日拖8至11楼",一切就都没问题了。
今天让我们解开这个计数之谜。
基本计数
数字帮助我们了解"有多少"。以编号的房屋列表为例:

这里有52栋房子。不要逐一计数:门牌号替我们数好了!这些号码像我们通常做的那样,逐一标记了房子。我们只需读取最后一项:"1到52"就是52栋房子。
示例:
- 员工ID卡从1到3493。共有3493名员工。
- 一个月中的天数从1到31。该月有31天。
减法意味着什么?
我们常常将数字视为直线上的点:

这些点可以是房子、楼层或普通整数。无论它们是什么,它们都被标记,以便我们轻松计数。1到10表示十个物品。
但是像8到11这样的范围呢?那里有多少个物品?

我们可能会尝试减法:11 - 8 = 3,对吗?但这里的关键是:
- 减法是两个数字之间的间隔,而不是计数
等式11 - 8 = 3意味着8和11之间有3个"间隔",但该范围内有四个数字!
间隔是 距离度量,比如从上午8点到上午11点的时间(3小时)或8英寸到11英寸的距离(3英寸)。
但在计数楼层时,我们问的不是8层到11层之间的距离(实际上是3层或30英尺,假设每层10英尺)。我们想知道范围"8到11"包含多少个物品!
处理跨度和计数
意识到 两种计数类型 是我思维的重大转变。从a到b"计数"时,我们有两种可能的选择:
- 从a到b的距离: b - a [常规减法]
- 从a到b的项目数量: b - a + 1 (跨度触及额外元素)
好了,公式都行得通。但为什么计数需要额外加一个元素呢?
嗯,最短的间隔(距离1)实际上触及了两个数字:

间隔是一条有起点和终点的线段;距离为1的间隔覆盖了2个点。随着间隔增长,我们吞并更多的点,并且总是"领先一步"。

另一种思考方式:间隔为3意味着我们从一个物品(#8)开始,然后数出另外3个(#9、#10、#11)。所以,间隔N包含1个原始物品和N个新物品,总共N + 1个物品。
我喜欢看到不同的观点;使用适合你的方法。
栅栏柱问题
间隔与计数之间的混淆通常被称为栅栏问题。你是在数柱子(点)还是它们之间的距离(栅栏间隔)?
问题如下:
你正在建造一个100英尺长的围栏,每隔10英尺立一根柱子。你需要多少根柱子?
下面是用我们的新思维模型来思考这个问题的方法:
嗯,我们想要一个100英尺长的栅栏。好:那是一个由十个10英尺段组成的跨度。但我们想要的是 文章:这十个段触及了多少根柱子?嗯,一个跨度总是触及一个额外的点,所以十个段意味着11根柱子。
应该是11根柱子。但这个问题对我来说并不自然——我不得不考虑跨度与点。我会用一个更小的例子来验证——一个10英尺长的围栏需要2根柱子,所以是的,我们需要“多一根柱子”。
再举几个例子:
- 工作日: 我从4月8日工作到4月11日。我一共工作了几天?嗯,跨度是3(11-8),但我们"触及"了4天:4月8、9、10、11。所以我工作了4天。
- 小时: 小时就像跨度。从8工作到11意味着你覆盖了 跨度 8-9、9-10和10-11。8到11意味着一个3小时的"时间段"。
- 秒: 我参加一场比赛,开始时间是12:01:08(12小时1分8秒)。结束时间是12:01:11。持续了多长时间?11 - 8 = 3秒。(短比赛)
有趣吧?有些时间单位用跨度(小时、秒)来衡量,而另一些则是被计数的项目(天)。
衡量类型取决于上下文。我们把较短的时间单位视为“瞬间”,并希望得到这些瞬间之间的持续时间,而不是我们触及的“瞬间”数量。
我们把“天”看作是一个模糊的大块,覆盖了一个时间段(上午9点到下午5点)——我们想知道覆盖了多少个这样的块。说你在4月8日到4月9日工作,意味着你在两天的时间里工作了上午9点到下午5点的时间段。
计数类型取决于上下文——但至少你知道 为什么 我们以不同的方式计数。
最终想法
计数并不简单。围栏柱问题和其他“差一”边界错误是出了名的常见。但不要只记住一个特殊技巧,比如“有时我需要加1”。记住有两种衡量事物的方式:
- 我们是在测量差值(距离、时间)吗? 然后做常规减法得到跨度。
- 我们是在计数吗? 然后减1再加1(b - a + 1)——我们想要跨度触及的项目数。
区分它们并不容易——我们习惯于只有一种衡量方式。尝试一个简单的例子(一个10英尺长的围栏)来测试你是在计数还是测量跨度。
我遇到过很多次围栏柱问题,但我读过的文章只告诉我如何修正。不,不,不—— 为什么会这样?
原来我们经常对两种不同类型的计数采用相同的方法。虽然正确的方法可能不明显,但至少我们知道要尝试两种方法。数学愉快。