【算法学习】 在一天的24小时之中,时钟的时针、分针和秒针完全重合在一起的时候有几次?
严格的说,一天中,分针,时针和秒针不可能完全重合,随着其中任何之一的运动,都不能完成重合;这个答案在一本书中见到,描述为google的答案,
但是这里还是想看一下计算的结果,号称这个是微软的答案:
因为时针、分针和秒针都是饶同一轴转动,所以它们都有自己的角速度,并且其角速度之间存在一定的关系。根据这个关系我们可以解除此题。
若设时针的角速度为w,则分针跟秒针的角速度分别为12w和720w。
先来考察时针与分针重合时的角度,设为x。则有等式:
x/w = (x + n*360)/ 12w
其中n为分针超过时针的圈数。n的取值范围为从1到22之间的正整数。只取到22是因为在一天中虽然分针是走了24圈,但时针也走了两圈。所以24-2=22。
然后,我们就可以代入n值来求x了。求出x后,还要看秒针此时是否也在x处。可知时针走到x处用的时间为x/w,此时秒针走过的总角度为720w*x/w = 720x。然后把此值化简到360以内看是否为w即可。简单过程如下:
当n = 1时,x = 360/11。 720 * 360 /11 ——> 5*360/11。可见时针与分针重合时秒针不与它们重合。
当n = 2时,x = 2*360/11。 720*2*360/11 ——> 10*360/11。 秒针不重合。
当n = 3时,x = 3*360/11。 720*3*360/11 ——> 4*360/11。 秒针不重合。
有规律的,自己看…………
当n = 11时, x = 11*360/11 = 360。 720*360 ——>360。 秒针重合,此时即为中午12点。
循环…………
由上可知一天中三针完全重合在一起的时候共有两次,分别为中午12点和凌晨0点。