15 Nisan 2011 Cuma

Deney: Duvar Saati

Bu yazımda bahsettiğim problemin çözümü üzerine düşünmeye devam ettim ve ediyorum. Geçen zamanda ne tür ilerlemeler kaydettiğimden bahsedeyim.

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.

2 Nisan 2011 Cumartesi

Problem: Duvar Saati

Bu aralar aklımı kurcalayan bir matematik problemi var. Düşünüyorum düşünüyorum aklıma uygun bir çözüm ve sonuç gelmiyor.

Problem şu:
Bir duvar saatinde akrep, yelkovan ve saniye arasındaki 3 açıdan 2'sinin eşit ve bütün açılar 1 dereceden büyük olduğunda saat "saat:dakika:saniye" bazında tam olarak kaçı gösterir.

Veya başka bir tabirle:
Bir duvar saatinde saat "saat:dakika:saniye" bazında tam olarak kaçı gösterdiğinde akrep, yelkovan ve saniye arasındaki 3 açıdan 2'si eşit ve bütün açılar 1 dereceden büyük olur.

İşte düşünüp durduğum, duvar saatini her gördüğümde sürekli açılarını hesaplamaya çalıştığım problem bu.

Problemin çözümü için bazı verileri sizi yormadan yazayım.

  • Saat
    üzerindeki her bir çizgi arası mesafe 6 derece olup bu çizgilerden 60 taneden 12 tanesi saat başlarına denk geldiği için belirginleştirilmiştir.

  • Akrebin 1 çizgi ilerlemesi için yelkovanın 15 çizgi ilerlemesi gerekir.

  • Yelkovanın 1 çizgi ilerlemesi için saniyenin 60 çizgi ilerleyip tam bir tur yapması gerekir.

Aslında bu bilgileri herkes denebilecek bir çoğunluk bilir. Ben sadece ben hesap yaparken yanlış bir şey mi biliyorum diye test etmek için yazdım.

Bu problemin bir çözümü var mı, problem doğru sorulmuş bir problem mi bilmiyorum. Bildiğim ise her duvar saati görüşümde bu problem hakkında düşünüyor olmam.

Bu problemin bir çözümü varsa ve çözebilmişseniz burada yorum olarak paylaşmanız beni sevindirecektir.

29 Mart 2011 Salı

El yazısı, imza

İmza diye kişinin el yazısıyla yazdığı kendi ismine deniyor.

Herkes el yazısı deyince bitişik el yazısını anlıyor. Çünkü ilköğretimde okuyan çoğunluğa ilk olarak bitişik el yazısı öğretilmiş ve öğretiliyor. Ama gel gör ki ben o çoğunlukta değilim. Ben yazmayı daktilo harfleriyle öğrendim. Yani ayrık harflerle yazıyorum. Yazmayı ayrık harflerle öğrendikten sonra bitişik el yazısını öğretmeye çalıştılar. O meşhur her satırında 4 çizgi olan "güzel yazı defter"inde arkadaşlarım 1 sayfayı 15 dakikada yazıyorsa ben yarım saatte yazamıyordum. Defterin adına uygun olarak güzel yazmaya çalışıyordum ama benim ayrık yazım da çirkin olduğundan güzel ve bitişik yazmak çok vaktimi alıyordu. Vakit almasını geçtim yinede güzel olmuyordu. Ve bunun neticesinde öğrenemedim bitişik yazmayı.

Gel gelelim imza meselesine. Benim el yazım ayrık olduğu için adımı yazdığımda sadece adımı yazmış oluyorum. Yani imza değeri taşımıyor. O yüzden bir imza belirlemiştim kendime.
Adımı değişik bir şekilde yazıyordum. Gel zaman git zaman imzam balığa benzemeye başladı. Aslında ilk hali de benziyordu ama şimdiki kadar değil. Şuanda saçma bir imza(balık) atıyorum oraya buraya.

Bu durum Genetik dersi almaya başlamadan öncesine kadar hiç bir sıkıntı yaratmamıştı. Hocamız imza diye el yazısıyla yazılmış isme diretince kendimi kasa kasa imza atmaya çalıştım. Ama gel gör ki ne o yazı benim yazım olur ne de imzam.

İşte sırf bu yüzden yapılacaklar listesine bitişik el yazısı öğrenmeyi ve güzel yazmayı öğrenmeyi ekliyorum. Bir ara yapacağım bunu kaçarı yok. :D Buraya yazı eklerken başka işlerle uğraşmamak lazım. İlham kaçıyor yoksa. Ben buraya bir sürü şey yazacaktım ama Ülgen Sarıkavak sağolsun kovdu ilham meleklerimi(!) :D