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.
Hiç yorum yok:
Yorum Gönder