問題
在一天的24小時之中,時鐘的時針、分針和秒針完全重合在一起的時候有幾次?都分別是什麼時間?你怎樣算出來的?
分析初看此問題覺得很簡單,但是網上各種版本的答案都各不相同,那到底誰是對的呢?
我們可以這樣考慮——龜兔賽跑,跑得慢的針終歸會被快的一圈一圈超過。那麼,分別求出時針分針、分針秒針的重合時間,然後再看是否有相同。
這裡都不難,關鍵是有乙個陷阱!請問大家,我說「一圈一圈超過」,是不是每圈都被超過?
先求角速度:(度/秒)
1. 時針:w1 = 360 / 12*3600 = 1/120 d/s
2. 分針:w2= 360 / 3600 = 0.1 d/s
3. 秒針:w3 = 360 / 60 = 6 d/s
設3個針當中,快針角速度為wf,慢針角速度為ws。若快針在一天24小時中,轉k = 0, 1, 2, 3, … , n圈的時候,重合慢針的時間為t,則:
wf * t - k*360 = ws*t – [ws/wf * k] *360
t = 360*( k - [k*ws/wf] ) / (wf - ws)
**如下:
list times_overlap(double wf, double ws)
return times;
}執行程式可以得到(顯示出來的時間按秒取整了):
時針分針重合的時間 times_overlap(w2, w1):
(1) 00:00:00, (2) 01:05:27, (3) 02:10:54, (4) 03:16:21, (5) 04:21:49, (6) 05:27:16, (7) 06:32:43, (8) 07:38:10, (9) 08:43:38, (10) 09:49:05, (11) 10:54:32, (12) 12:00:00, (13) 13:05:27, (14) 14:10:54, (15) 15:16:21, (16) 16:21:49, (17) 17:27:16, (18) 18:32:43, (19) 19:38:10, (20) 20:43:38, (21) 21:49:05, (22) 22:54:32,
分針秒針重合的時間 times_overlap(w3, w2):
(1) 00:00:00, (2) 00:01:01, (3) 00:02:02, (4) 00:03:03, (5) 00:04:04, (6) 00:05:05, (7) 00:06:06, (8) 00:07:07, (9) 00:08:08, (10) 00:09:09, (11) 00:10:10, (12) 00:11:11, (13) 00:12:12, …… 23:53:53, (1412) 23:54:54, (1413) 23:55:55, (1414) 23:56:56, (1415) 23:57:57, (1416) 23:58:58,
00:00:00 12:00:00
討論通過times_overlap(w2, w1) 算出所有時針和分針重合時間;通過times_overlap(w3, w2)算出所有分針和秒針重合時間,可以得到總共重合2次:0點和12點。
需要注意的是,快針和慢針每在0點重合,下一圈快針和慢針將不會相遇。因此,時針和分針相遇22次,時針和秒針相遇1438次,分針和秒針相遇1416次。
時分秒針重合 問題
網路搜尋引擎的答案 問題 在一天的24小時之中,時鐘的時針 分針和秒針完全重合在一起的時候有幾次?都分別是什麼時間?你怎樣算出來的?分析初看此問題覺得很簡單,但是網上各種版本的答案都各不相同,那到底誰是對的呢?我們可以這樣考慮 龜兔賽跑,跑得慢的針終歸會被快的一圈一圈超過。那麼,分別求出時針分針 分...
時分秒針旋轉角度換算
先來看秒針 1分鐘有60秒,即秒針需要走過的格數是60格,鬧鐘一圈是360 因此經過1秒鐘,秒針走過的角度就是360 60秒 6 以正上方為夾角起始邊算,秒針旋轉角度公式為 second.rotation currenttime.seconds 6 再來看分針 1小時有60分,即分針需要走過的格數也...
時分秒針旋轉角度換算
先來看秒針 1分鐘有60秒,即秒針需要走過的格數是60格,鬧鐘一圈是360 因此經過1秒鐘,秒針走過的角度就是360 60秒 6 以正上方為夾角起始邊算,秒針旋轉角度公式為 second.rotation currenttime.seconds 6 再來看分針 1小時有60分,即分針需要走過的格數也...