時分秒針重合 問題

2022-04-04 08:04:55 字數 2199 閱讀 5468

網路搜尋引擎的答案:

問題

在一天的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次

對整個問題的分析是很不錯的,只是紅字部分:wf * t - k*360 = ws*t – [ws/wf * k] *360有錯誤

應該為wf * t - k*360 = ws*t(也就是等式左邊快針在t時間走過的角度減去慢針走過的角度是360的整數倍) 。

對此可以簡單的舉個例子假設即可得出錯誤:對於(2) 01:05:27這個時間來說,k=1,原來的式子的出來的結果是3600秒

而不是事實的3927秒;

測試**(devc++)如下:

view code

1 #include2 #include3

using

namespace

std;

4 typedef listlist;

5int times_overlap(double wf, double

ws)

616 list::iterator it =times.begin();

17for(;it!=times.end();it++)

1821}22

intmain()

23

時分秒針重合

問題 在一天的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分,即分針需要走過的格數也...