在面試之中,除了技術面試以了解候選人的技術水平,有時還會有一些類似於腦筋急轉彎的趣味題,來考察候選人的反應能力和思維能力等。今天我們就來分析一下下面這個問題:
時針分針一天重合多少次?
這顯然是一個追及問題,時針跑得慢,分針跑得快,問題等價於在一天24小時的時間內,分針能夠追上時針的次數是多少?
不論是時針還是分針都在錶盤內按角度均勻轉動的,一個很自然的想法就是比較時針和分針的轉動速度。以分鐘為單位,分針每分鐘轉動1/60*360=6度,時鐘每分鐘轉動1/60/12*360=0.5度。
分針要追上時針,需要比時鐘多跑圈數。超過一圈需要時間360/(6-0.5)分鐘,一天總共有24小時,那麼總共重合24*60/(360/6-0..5) = 22次。
我們也可以通過代碼來將這些重合時間進行計算並顯示出來。
def hour_minute_meet(): for i in range(1,12): meet_time=i*60/(minute_hand_velo-hour_hand_velo) print(time.strftime("%H:%M:%S", time.gmtime(meet_time)))
import time if __name__=='__main__': second_hand_velo=1 minute_hand_velo=1/60 hour_hand_velo=1/60/12 hour_minute_meet()
上述代碼有幾個需要解釋的地方,將計算單位換算成了秒,即秒針一秒轉一度,分針一秒轉1/60度,時針一秒轉1/60/12度。這樣可以將時間具體到秒展示出來。錶盤上顯示了12個小時,分針轉一圈便是一個小時。追及方法同上述。
這樣我們可以得到半天的時針分針相遇時間。那麼問題也可以升級一下:
時針分針秒針一天重合多少次?
這個三針重合問題我們可以在第一個問題的基礎上進一步分析,即在時針分針重合的情況下看秒針的位置是否和時針分針一致。顯然只有在12點整的時候,12:00:00 有三針重合的情況,也就是一天之內兩個12點整會出現三針重合的現象~