If you are interested in my projects please contact me, I will be pleased to help you. All of my projects are open source.

Somunları Yerleştirme Bulmacası 2006.04.04

Somunlar

Bu proje, bir çocuk dergisinde verilen bir oyuncak/bulmacanın (6 adet somunun yerleştirilmesi) çözümünü tüm olasılıkları deneyerek ve rekürsif çözen iki farklı C programından oluşmaktadır.

Herbir somunun her kenarı üzerinde bir'den altı'ya kadar rakamlar yazılmıştır.

Amaç tüm somunları, altıgen şeklinde bir somunun etrafına, çakışan tüm kenarlardaki rakamlar aynı  olacak şekilde dizmektir.

Problem basit gözükmesine rağmen, yapılmaya çalışıldığında en sona kalan bir kaç rakam çakışmamaktadır.

Projede bu bulmacayı çözmek için iki farklı yöntem düşünülmüş ve C ile programları oluşturulmuştur:

1. Tüm Olasılıkların Denenmesi
    Bu yöntemde olası tüm durumlar sırayla denenerek istenen yerleşim bulunmuştur. Normal bir PC ile işlem yapıldığında çözümün bulunması yaklaşık 5 dakika sürmektedir.

2. Yerleştirerek Rekürsif İlerleme
    Bu yöntemde, biraz daha fazla zeka kullanılmaya çalışılmış ve elle çözmeye çalışan bir insanın izleyebileceği yöntem takip edilmiştir.

    Bunu yapabilmek için rekürsif bir kod oluşturulmuştur; işleyiş aşağıdaki gibi gerçekleşmektedir:
    İlk somun merkez somun olarak seçilir.
       Merkezin ilk kenarına sıradakı ilk somun yerleştirilir.
       Merkezin ikinci kenarına, bir önce gelen somun ile uyuşan ilk somun yerleştirilir.
       ...
       Bu şekilde merkezdeki somunun etrafı doldurulmaya çalışılır; herhangi bir anda aranan özelliklere sahip somun bulunamayınca bir önceki adıma geri dönülerek yerleştirilmiş olan somun sıradaki somun ile değiştirilir ve  proses tekrar kaldığı yerden devam ettirilir.
   
    Proses doğru kurulduğunda istenen yerleşim bulunamayınca merkezdeki somunu da sıradaki ile değiştirebilmekte ve tekrar aynı süreç devam ettirilmektedir.

    Bu yöntemi kullanan rekürsif programın problemi çözmesi yarım dakika sürmektedir !!

Download

2006.04.04 download somunlar.tgz


Requirements

C Derleyicisi