Zeka soruları sitesi

Zeka sorularından oluşan ve Türkiyenin en zeki kişilerinin toplanacağı adresimiz zeka küp zeka soruları yayına geçmiş bulunuyor. Sitemize üye olmak oldukça kolay. Google hesabınızla da giriş yapabilirsiniz. İçinde binlerce zeka sorusu, programlama sorusu olacak sitemizde siz de yerinizi alıp günde bir kaç soru çözüp zekanızı arttırabilirsiniz.

Sitemizin adresi https://zekakup.com

52 Kartlık Deste Soruları

1-52 arası numaraların olduğu bir deste kart var. Deste rastgele karıştırılıyor. Sonra birinci kart açılıyor. İlk açılan kart icin 1 puan her zaman alınıyor. Ondan sonra her açılan kartın numarası o ana kadar açılan en yüksek numaradan fazla ise 1 puan, değilse 0 puan alınıyor. Bu oyun oynanırsa oyundan alınması beklenen puan ne kadardır?

52 adet kart 1 den 52 ye kadar numaralandırılıp güzelce karıştırılıyor. Rastgele 3 kart çekiliyor ve masaya soldan sağa açılıyor. Masada açılan kartların küçükten büyüğe sıralanma olasılığı nedir? (Örneğin 8, 27, 36)

Çarpımları ve toplamları aynı olan sayılar

Sonsuz yurt dışı gezisinde bir dükkandan 4 parça eşya alır. Dükkan sahibinin hesap yaparken sayıları toplayacağı yere çarptığını görür ve adalet duygusu hemen dükkan sahibini uyarmaya yöneltir.

Fakat adam umursamazca “toplasam da aynı sonuç yani 7,11 dolar çıkacaktı” der. Sonsuzun aldığı eşyaların fiyatı nedir?

Python programlama ile para sorusu

Sorumuz şu: Bir adam elindeki çeki bozdurmak için bankaya gitti. Fakat veznedar bir yanlışlık yaptı ve çekin üzerinde yazılı liralar yerine kuruş ve kuruşlar yerine de lira vererek çeki ödedi. Adam da dikkat etmeden paraları cebine koydu. Eve giderken paranın 5 kuruşunu düşürdü. Bu vesile ile parasını saydı ve cebinde çekin değerinin tam iki katı parası olduğunun farkına vardı. Çekin üzerinde yazılı olan miktar ne kadardı? *

Programımız oldukça basit, lira ve kuruşu 100 lük döngülere sokuyoruz ve formülü deniyoruz.

for lira in range(100):
    for kurus in range(100):
        if lira + kurus / 100 == 0:  continue
        if (kurus + (lira - 5) / 100) / (lira + kurus / 100) == 2:
            print(f"Çekin üzerinde yazan miktar: {lira}.{kurus}")
            break

continue kullanmamızın sebebi sıfıra bölünme hatasından kaçmak içindir.

Bir diğer çözüm de şu olabilir

for lira in  range(0,55):
    for kurus in range(lira+5,105):
            if 2*(float(lira)+float(kurus)/100)==float(kurus)+float(lira-5)/100:
                print(str(lira)+"."+str(kurus)+"₺")

Python Programlama ile Olasılık Soruları

Sonsuz.us sitesinde bolca olasılık sorusu var, bunların bazılarını python programlama ile çözüp örnekler sunacağım. Böylece random kütüphanesinin kullanımı ve olasılık sorularına uygulanışını görmüş olacağız.

Olasılık sorularında yapmamız gereken olayı doğru bir biçimde kodlayıp defalarca simülasyon tekrarlamamızdır. Yeterli sayıda simülasyon bize yaklaşık sonucu verecektir.

İlk sorumuz yine basit bir olasılık sorusu. Rastgele iki noktasından kırılan bir çubuğun parçalarının üçgen oluşturma olasılığı nedir?

Üçgen olma kuralı bildiğiniz üzere her hangi iki kenarın toplamı diğer kenardan büyük olma zorunluluğu olmasıydı. Programın yapması gerekense defalarca iki rastgele noktadan kırıp oluşan parçaları karşılaştırmak.

import random
ucgen=0
for i in range(10000):
  nokta = [random.random(),random.random()]
  nokta.sort()
  a,b,c = nokta[0],nokta[1]-nokta[0],1-nokta[1]
  if a+b>c and a+c>b and b+c>a:
    ucgen+=1
print(ucgen/10000)

Yeni bir olasılık sorusu olarak şunu ekleyebiliriz.

10 tane madeni paranın 8 tanesi hilesizdir, 2 tanesinin ise her iki yüzü de turadır. Bu 10 madeni paradan bir tanesi rasgele seçilir ve 2 defa yazı-tura atılırsa, her ikisinin de tura gelme ihtimali kaçtır?

import random

paralar = [["yazı","tura"],["yazı","tura"],["yazı","tura"],["yazı","tura"],["yazı","tura"],["yazı","tura"],["yazı","tura"],["yazı","tura"],["tura","tura"],["tura","tura"]]
olay = 0
for i in range(10000):
    para = random.choice(paralar)
    tura = 0
    for j in range(2):
        yuz = random.choice(para)
        if yuz == "tura":
            tura = tura + 1
    if tura == 2:
        olay = olay + 1
print(olay/10000)