Python Programlama ile zeka soruları

Sorumuz şu: Okunuşunda ki harfleri birbirinden farklı en büyük üç haneli sayı nedir?

Elbette bu soruyu elle de çözmek mümkün ama epey deneme yanılma yapmak gerekir. Örneğin yüzbir, okunuşunda harfler farklı, yüzdört yine okunuşunda ki harfleri farklı daha büyük bir sayı.

Gelin bu sorumuzu python ile çözdürelim.

def yaziyap(sayi):
    birler = ["","bir","iki","üç","dört","beş","altı","yedi","sekiz","dokuz"]
    onlar = ["","on","yirmi","otuz","kırk","elli","altmış","yetmiş","seksen","doksan"]
    sayi=str(sayi)
    if sayi[0]=="1":
        return "yüz"+onlar[int(sayi[1])] + birler[int(sayi[2])]
    else:
        return birler[int(sayi[0])]+"yüz" + onlar[int(sayi[1])] + birler[int(sayi[2])]

for n in reversed(range(999)):
    if len(yaziyap(n)) == len(set(yaziyap(n))):
        print(yaziyap(n))
        break

def kısmı bir fonksiyondur, gelen sayının okunuşunu döndürür geriye. Diğer önemli kısım ise gelen string bilginin işlenişidir. if kısmında yaptığımız gelen kelimenin harflerini sayıyoruz, bir de küme yapıp sayıyoruz. Kümelerin şöyle bir güzelliği var ki aynı elemandan birden fazla kabul etmiyor.

Python Programlama Örnekleri

C/C++ , C#, PHP, Small Basic, Java, Delphi sonrasında Python programlama diline de merak saldım ve epey esnek, programcı dostu metotları ve yazım şekli ile iyi ki de öğrenmişim diyorum. Bir kaç dilden benzerlikler var hepsinin en iyi yönleri alınarak yapılmış gibi sanki. Ve özellikle yine meraklı olduğum zeka sorularını çözmekte çok daha iyi.

Bellek kullanımı ve hız konusunda C++ kadar hızlı olmasa da yazım kolaylığı ve daha kısa kodlar yazma konusunda oldukça iyi. Öncelikle girintili yazım kurallarına göre yapılandırıldığı için otomatik olarak okunurluğu ve geliştirilebilirliği arttırıyor, ekip çalışmasına yatkın hale geliyor. Metotlar konusunda ise oldukça zengin ve programcının ihtiyaç duyduğu metotların neredeyse hepsi mevcut.

Bu yazımda bir kaç zeka sorusunun çözümünü programlama ile yapacağım. Zamanla da yorumlara eklerim veya sizin sormak istediğiniz sorular olursa beraber çözmeye çalışırız.

Devamını oku “Python Programlama Örnekleri” →

Kibrit Oyunu

Bir masa üzerine 1.000.000 (bir milyon) kibrit çöpü bırakılmıştır. İki kişi bu kibrit çöpleri ile aşağıdaki kurala göre oyun oynuyorlar. Sırası gelen oyuncu bir asal sayı p ve negatif olmayan bir n sayısı seçip masa üzerinden p^n tane kibrit çöpünü alabiliyor. (örneğin 8, 1, 25, 5 ,49, 125 vs) En son kibrit çöpünü alan oyuncu oyunu kazanıyor?


Oyunu hangisi kazanır ve nasıl bir taktik uygulaması gerekir?

Yumurta ve Matematik

Elimde özdeş iki yumurta var (dayanıklılar) ve 10 katlı bir bina var. Yumurtaların kaçıncı kattan atıldığında kırıldığını bulmak istiyorum. Kırılan yumurtayı bir daha atamıyorum. Bunun için minimum kaç deneme yapmam gerekir? (bir yumurta bir katta kırılıyorsa üstündeki bütün katlardan atıldığında kırılıyor demektir)

Yine iki dayanıklı yumurta ile bu sefer 100 katlı bir binada kesin olarak hangi katta kırıldığını bulmak istiyorum. Bu sefer minimum kaç deneme yapmam gerekir?

Matematik zeka yarışması

Sonsuz Us’un düzenlediği bir matematik yarışmasına 81 ilden (her ilden en az 1 en çok 10 öğrenci olmak üzere) bilinmeyen sayıda öğrenciler katılmıştır. Bütün öğrencilere yarışma salonuna girme sıralarına göre 1 ‘den başlamak üzere sırayla giriş numaraları verilmiştir. (Salona ilk girene 1, İkinci girene 2, vb.) Yarışma sonunda birinciliği kazanan öğrenci ye giriş numarası sorulduğunda şu cevabı vermiştir:

“Salona benden önce gelen arkadaşların giriş numaralarının toplamıyla benden sonra gelenlerin giriş numaralarının toplamı birbirine eşittir. Benim numaramı buradan bulabilirsiniz.”

Öğrencinin giriş numarasını bulabilir misiniz?