# Soru 1: Artık Yıl
Verilen bir yıl için, bu yılın bir artık yıl (leap year) olup olmadığını bildiren bir Python fonksiyonu yazın. Artık yılın belirlenmesinde şu kurallar geçerlidir:
- 4'e tam bölünebilen bir yıl olmalı,
- 100'e tam bölünebilen yıllar hariç,
- Ancak aynı zamanda 400'e tam bölünebiliyorsa dahil.
Kaynak: https://en.wikipedia.org/wiki/Leap_year
# Soru 2: Hamming Mesafesi
İki DNA dizisi arasındaki Hamming Mesafesini hesaplayan bir Python fonksiyonu yazın.
Hücreler bölündüğünde, DNA'ları da kopyalanır. Bu süreç sırasında bazen hatalar meydana gelir ve DNA parçaları yanlış bilgi ile kodlanır. İki DNA dizisini karşılaştırıp aralarındaki farkları sayarsak, meydana gelen hataların sayısını görebiliriz. Buna 'Hamming Mesafesi' denir. DNA'nın her bir parçasını A, C, G ve T harflerinden birisiyle okuruz.
Not: Hamming mesafesi sadece eşit uzunluktaki diziler için tanımlıdır, bu nedenle farklı uzunluktaki diziler arasında hesaplama yapmak mümkün olmamalı.
Kaynak: https://en.wikipedia.org/wiki/Hamming_distance
# Soru 3: Buğday ve Satranç Tahtası Problemi
Rivayete göre bir zamanlar, kralın hayatı bir bilge tarafından kurtarıldı. Kral, bilgenin hayal edebileceği her şeyi ödeyeceğine söz verdi. Kralın satranç oyununu sevdiğini bilen bilge, krala sadece buğday taneleri istediğini söyledi. Öyle ki satranç tahtasının ilk karesine 1 buğday tanesi konulacak, sonra sırayla her kareye bir öncekinin 2 katı kadar buğday konulacak ve toplam buğday miktarı kendisine verilecek.
Bir satranç tahtasında toplam 64 kare vardır. Python kullanarak şu bilgileri alabileceğiniz kodu yazın:
- Sırası verilen karede kaç tane buğday var?
- Tüm tahtada kaç buğday tanesi var?
Kaynak: https://en.wikipedia.org/wiki/Wheat_and_chessboard_problem
# Soru 4: Bağış Kampanyası için Veri Bazlı Bir Yaklaşım
Dezavantajlı ülkeler ve topluluklar için temiz su sağlayan bir sivil toplum kuruluşu için çalıştığınızı düşünün. Bir bağış toplama kampanyası başlatmakla görevlendirildiniz. Başarılı bir bağış toplama stratejisi oluşturmak için veri analizini nasıl kullanabilirsiniz? Genellikle sivil toplum kuruluşlarının kullanabilecekleri sınırlı bütçeleri olduğunu da düşünerek, kampanyanın başarısı için hangi yöntemleri kullanabileceğinizi ana hatlarıyla belirtin.
Bu soru, verilerden anlamlı bir sonuç çıkarmadaki fikirlerinizi öğrenmek için sorulmuştur, detaylandırılmış bir yanıt tercih edebilirsiniz.
# Soru 5: Tekrarlayan E-Postaların Tespiti
Şablonu verilen veritabanı içerisindeki tekrarlayan e-postaları raporlayan çözümü SQL ile yazın.
Table: Person
Column Name |
Type |
id |
int |
name |
varchar |
Not: Tablodaki id sütunundaki değerler 'primary key'dir. email sütununda büyük harf ve NULL değer yoktur.
# Soru 6:
Bir önceki soruda (Soru 5) verilen Person isimli tabloya sahip SQL veritabanına erişen, tekrarlayan e-postaları bulan ve liste olarak sağlayan bir Python kodu yazın.
Not: Bu kod içerisinde büyük-küçük harf kontrolü yapılmalıdır.
# Soru 7:
Bir zarı 100 kez atıp ortalama (average) değeri hesapladığımızda sonucun dağılımı ne olur?