Geçen zamanda problem üzerine biraz daha düşündükten sonra uygun bir python betiği yazmaya karar verdim. Neticede tüm saat değerlerini tek tek denemek beni aşan bir problem olur. Betik bana sadece o saatlerin denk geldiği yerleri versin istedim. Betik aşağıdaki gibi:
#!/usr/bin/env python
#-*- coding:utf-8 -*-
class saat(object):
def __init__(self):
self.Sa = 0
self.Da = 0
self.Sn = 0
self.Devam = True
def ilerle(self):
while self.Devam:
self.SnArt()
if self.Kontrol():
self.Zaman()
def SnArt(self):
self.Sn += 1
if self.Sn == 60:
self.Sn = 0
self.DaArt()
def
DaArt(self):
self.Da += 1
if self.Da == 60:
self.Da = 0
self.SaArt()
def SaArt(self):
self.Sa += 1
if self.Sa == 12:
self.Sa = 0
self.Devam = False
def Zaman(self):
print '%s:%s:%s'% (self.Sa, self.Da, self.Sn)
def Derece(self):
sa = self.Sa * 30.0
da = self.Da * 6.0
sa += self.Da / 2.0
sn = self.Sn * 6.0
da += self.Sn * 0.1
sa += self.Sn / 120.0
return (sa, da, sn)
def Kontrol(self):
liste = []
for i in self.Derece():
liste.append(i)
liste.sort()
kucuk, orta, buyuk = liste
d1 = buyuk - orta
d2 = orta - kucuk
d3 = 360 - buyuk + kucuk
if (d1 == d2 or d2 == d3 or d1 == d3) and (d1>1 and d2>1 and d3>1):
return True
s = saat()
s.ilerle()
Betiğin ne iş yaptığını anlatmakla uğraşmak istemiyorum.
Python bilenler göz atınca anlayacaklardır. Bilmeyenler de biraz mantık yürüterek python'un anlaşılabilirliğini fark edebilirler. Bu kodun bize verdiği sonuç ise aşağıdaki gibi:
1:12:0 2:24:0 3:36:0 4:48:0 7:12:0 8:24:0 9:36:0 10:48:0
Bu sonuçlara 12:00:00 ve 6:00:00'ı da eklersek bir örüntüye ulaşıyoruz.
1:12:0 2:24:0 3:36:0 4:48:0 6:00:0 7:12:0 8:24:0 9:36:0 10:48:0 12:00:0
Fark edeceksiniz ki tüm saatler 1 saat 12 dakika aralıklarla yazılmış oldu. Benim yazdığım betikte saat 6 ve 12'nin olmayışının sebebi bütün açıların 1 dereceden büyük olmasını isteyişimdi. 6 ve 12'de saatin elemanlarından(akrep, yelkovan, saniye) 2'si veya 3'ü üst üste geliyor ve aralarındaki açı 0 derece oluyor.
Şimdi ise fark ettiğim bu örüntü hakkında düşünmeye başladım. Ben şu anda bu örüntüye "Eş açılı saatler" yasası ismini veriyorum. Fakat bu yasanın henüz bir açıklaması yok. İnşallah sonraki yazıda bu yasayı açıklayan bir teori yazarım.
