今回の記事について
時計の針が直線になる時刻…?
みなさん、時計の針が直線になる時刻を考えたことはありますか?
例えば「6:00」とかですね。
[fHasshira:20211116131231j:plain]
また、何回直線になる時刻が存在するのでしょうか?
とても面白そうな話なので、考えてみることにしました。
**今回の内容**
** 時計の長針と短針が直線になる時刻を求めてみた!**
どうやって計算する?
まず、このような手段で計算していこうと思います。
- 数学を使ってどれか一つを求める(手作業)
- Pythonを使って計算させる
- 「1」「2」の繰り返し
完成したコード
忙しい人の為に、完成したコードを最初に乗っけておきます。
import sympy
l=[]
x = sympy.Symbol('x')
y = sympy.Symbol('y')
t = sympy.Symbol('t')
t=0
while t<=12:
if t>=6:
t-=1
expr1 = y-0.5*x-(30*t)
#print(expr1)
expr2 = y-6*x+180
#print(sympy.solve([expr1, expr2]))
n=sympy.solve([expr1,expr2])
n=n[x]
if n>59:
while True:
n-=60
t+=1
if n<60:
break
l.append(f"時計の長針と短針が直線になる時刻は、{t}時{round(n)}分です")
t+=1
for l in l:
print(l)
具体的な説明
1.数学を使って構想を練る
まず、時計について考えてみましょう。
時計の長針・短針が一分間に進む角度は、
長針:12時間で360度(一周)→360/12=30→1時間で30度。
=30/60で[0.5]度!
短針:60分で360度(一周)→360/60=[6]度
2.方程式を作ってみる
以上のことを考えて方程式を作ってみました。
【長針の角度と時刻を表す式】
x:時間(分)
y:角度
t:時刻の「時」の方(「分」ではない)
y=0.5x+(30t)$$
【短針の角度と時刻を表す式】
y=6x
【短針と長針が直線になったことを表す式(短針において)】
y+180=6x
pythonで書き起こしてみる
import sympy
l=[]
x = sympy.Symbol('x')
y = sympy.Symbol('y')
t = sympy.Symbol('t')
t=0
while t<=12:
if t>=6:
t-=1
expr1 = y-0.5*x-(30*t)
#print(expr1)
expr2 = y-6*x+180
#print(sympy.solve([expr1, expr2]))
n=sympy.solve([expr1,expr2])
n=n[x]
if n>59:
while True:
n-=60
t+=1
if n<60:
break
l.append(f"時計の長針と短針が直線になる時刻は、{t}時{round(n)}分です")
t+=1
for l in l:
print(l)
- sympyをインポート(方程式を解けるように)
- 方程式を作る
- 「長針」が12になるまで繰り返す
結果
時計の長針と短針が直線になる時刻は、0時33分です
時計の長針と短針が直線になる時刻は、1時38分です
時計の長針と短針が直線になる時刻は、2時44分です
時計の長針と短針が直線になる時刻は、3時49分です
時計の長針と短針が直線になる時刻は、4時55分です
時計の長針と短針が直線になる時刻は、6時0分です
時計の長針と短針が直線になる時刻は、7時5分です
時計の長針と短針が直線になる時刻は、8時11分です
時計の長針と短針が直線になる時刻は、9時16分です
時計の長針と短針が直線になる時刻は、10時22分です
時計の長針と短針が直線になる時刻は、11時27分です
時計の長針と短針が直線になる時刻は、12時33分です
最後に
ありがとうございました。