时分秒针在一天之内重合多少次

前言

分析问题之前先给出问题的答案:2次,送给急需要知道答案又不求甚解的朋友。

这个问题之前听过类似的,一直没有当回事,今天在解题的时候发现了这道题,于是动脑筋想了一下,从12点位置时分秒3个表针重合开始,第一次应该在1点5分之后,那是分针转了一圈快追上时针了,再稍微走一点就能追上,然后秒针再转过来就完成了第一次重合,同理在2点10分之后也有一次,在3点15之后还有一次,这样算下来12小时之内有11次,那么一天24小时就有22次。

正在为自己的想法得意时,查了一下参考答案发现我被幼稚的想法打败了,实际上一天24小时内,时分秒针只重合了2次,原因就是我设想从12点开始到1点5分,分针转了一圈快追上时针了,此刻时针与分针确实会有一次相遇,但是此时的秒针却没办法跟他们相逢,因为三个表针是联动的,针对于每个精确到秒的时间,三个针都有固定的位置,不是想重合就能重合的。

在1点5分附近的情况就是,时针和分针快要重合了,然后秒针匆匆赶来,然后时针和分针重合了,秒针还差一点才能到,然后秒针继续走,但是秒针走会继续带动分针和时针运动,然后秒针赶到了分针时针相遇的附近,却发现它俩已经“分手”了,秒针只能大步流星的一个个越过它们俩,期待着下次它们仨能相遇在一处。

时针和分针的相遇

在考虑时分秒三针重合情况之前,我们可以先想一下一天24小时内,分针和时针相遇了多少次,其实这才是我刚才想的那个答案22次,知道了次数之后我们还想知道具体的时间,可不可以算出来呢?当然可以!

接下来我们以一种通俗的方式来解这个问题,那就是列方程式求解,首先将时间作为连续值来看待,我们设时针的角速度是ω,因为时针走1格,分针会走1圈,也就是12格,所以分针的角速度是12ω,分针转了一圈追上时针用的是t,时针和分针转过角度差为1圈,也就是2π,那么此时可以列出方程:

$$12ωt-ωt=2π$$

关于角速度ω的值,因为1圈的角度是2π,转一圈需要花的时间是12小时,所以ω=2π/12小时,带入方程得到t=12小时/11,同理如果分针转两圈追上时针,那么方程式为:

$$12ωt-ωt=4π$$

可以求得t=24小时/11,由此我们就得到了,时针分针相遇时刻与分针转的圈数i的关系:

$$t=i*12小时/11$$

代码实现

有了上面的分析,我们可以写代码计算一下一天之中时针和分针相遇具体时刻,因为开着lua编辑器,顺手就用lua写了,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
function print_meet(id, meet)
local h = math.floor(meet)
local t = meet - h;
local ts = t * 3600;
local m = ts // 60;
local s = ts - m * 60;
print(string.format("%02dth meet, time = %02d:%02d:%05.2f", id, h, m, s));
end

for i=1,24 do
print_meet(i, i * 12 / 11)
end

运行结果

01th meet, time = 01:05:27.27
02th meet, time = 02:10:54.55
03th meet, time = 03:16:21.82
04th meet, time = 04:21:49.09
05th meet, time = 05:27:16.36
06th meet, time = 06:32:43.64
07th meet, time = 07:38:10.91
08th meet, time = 08:43:38.18
09th meet, time = 09:49:05.45
10th meet, time = 10:54:32.73
11th meet, time = 12:00:00.00
12th meet, time = 13:05:27.27
13th meet, time = 14:10:54.55
14th meet, time = 15:16:21.82
15th meet, time = 16:21:49.09
16th meet, time = 17:27:16.36
17th meet, time = 18:32:43.64
18th meet, time = 19:38:10.91
19th meet, time = 20:43:38.18
20th meet, time = 21:49:05.45
21th meet, time = 22:54:32.73
22th meet, time = 24:00:00.00
23th meet, time = 25:05:27.27
24th meet, time = 26:10:54.55

分析

从上面的结果来看,处于一天内的时间相遇时刻只有前22次,12点之后第一次相遇是在01:05:27.27,此时虽然时针和分针相遇,但是秒针大概在27秒的位置,离他们还很远,同理分针时针第二次相遇时刻02:10:54.55,秒针也没有跟他们在一起,但是有两次例外,那就是12:00:00.0024:00:00.00,这两次时针、分针、秒针完全重合了,所以我们也得到了本文标题中的答案。

总结

  1. 时分秒针在一天之内重合2次
  2. 从连续的时间来看,时针和分针在一天之内重合22次
  3. 有一种现实情况就是表盘上的时间是离散的,不连续的,最小的时间间隔是1秒,此时我们计算的第一次相遇时间01:05:27.27是不存在的,01:05:27的时候分针在时针之前,而01:05:28的时候分针在时针之后,它们也错过了,所以时针和分针考虑离散的情况,一天之后也只是重合2次。
Albert Shi wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客