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

  • Post author:
  • Post category:其他




前言

分析问题之前先给出问题的答案:

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

π

12ωt-ωt=2π






1


2


ω


t













ω


t




=








2


π





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





12

ω

t

ω

t

=

4

π

12ωt-ωt=4π






1


2


ω


t













ω


t




=








4


π





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





t

=

i

12

/

11

t=i*12小时/11






t




=








i













1


2








/


1


1







代码实现

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

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.00



24:00:00.00

,这两次时针、分针、秒针完全重合了,所以我们也得到了本文标题中的答案。



总结

  1. 时分秒针在一天之内重合2次
  2. 从连续的时间来看,时针和分针在一天之内重合22次
  3. 有一种现实情况就是表盘上的时间是离散的,不连续的,最小的时间间隔是1秒,此时我们计算的第一次相遇时间

    01:05:27.27

    是不存在的,01:05:27的时候分针在时针之前,而01:05:28的时候分针在时针之后,它们也错过了,所以时针和分针考虑离散的情况,一天之后也只是重合2次。



版权声明:本文为shihengzhen101原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。