1
Merhaba değerli üyeler,

Bu alt forumumuza gönderide bulunmadan önce, okumanızın faydalı olacağını düşündüğüm bazı bilgilendirmelerde ve yönlendirmelerde bulunacağım.



1. www.geomania.org bir matematik forumu olmakla beraber Python kodlama ile ilgili becerilerimizi artırabilecek problemler ve çözümleri burada sunabiliriz. Başlangıç aşamasında özellikle öğretici içerikler sunmaya çalışacağız. Ben de şu anda başlangıç düzeyinde olduğum için bildiğim kadarıyla sunacağım. Gerekli gördükçe birbirimize düzeltmeler verip iyileştirmeler yapabiliriz.

2. Bilgiyi çoğaltma ve başkalarının da bu bilgiyi öğrenmesini amaçlamaktayız. Bu sebeple, sorduğumuz sorunun yanıtını biliyorsak, bir süre sonra (bu süre 3 gün veya 1 ay gibi olabilir) yanıtımızı paylaşarak ziyaretçileri/üyeleri bilgilendirmiş olalım.

3. Çözümünü bilmediğimiz bir Python kodlama sorumuz varsa, yapılan çabaları da sorunun altına eklemek uygun olur.

4. İstatistik biliminin bir parçası olarak veri görselleştirme (data visualization) ile ilgili paylaşımlarda da bulunabilirsiniz.

5. Python kodlamayı ilk kez öğrenecekler için Udacity sitesinde Python Programlamaya Giriş gibi ücretsiz alt yazılı dersler vardır. Ayrıca daha farklı kaynaklar araştırılarak Türkçe/İngilizce dersler bulunabilir. Daha da geliştirmek isteyenler için ücretli olan dersler de sunulabiliyor.

6. Python kodlarınızı çalıştırabileceğiniz ücretsiz bir platform https://colab.research.google.com/ adresidir. Şu anda colab uygulaması Python 3.9 sürümüne göre çalışmaktadır. Kodlarımızı colab'ın çalıştırdığı güncel sürüme göre yazacağız. Hatalı/çalışmayan kod paylaşmamak için yazılan kodların colab ile test edilmesi önemlidir.

7. Sorularımızı ve çözümlerimizi nasıl bir formatta yazdığımızı örneklendirmek için birkaç soru ve çözüm ekleyeceğim:
Soru 1
Soru 2

Happy codings  :)


2
Alper Çay hocanın sayılar teorisi sorunun python ile çözümü.

Soru: $x, y, z$ birer çift pozitif tam sayı ve $0<x,y,z<200$ olmak üzere $x^2+2y^2+z^2=xyz $ denklemini sağlayan kaç $(x,y,z)$ üçlüsü vardır?

Çözüm: Aşağıdaki kodu çalıştıralım.

Kod: [Seç]
count = 0
solutions = []

for x in range(2, 201, 2):
    for y in range(2, 201, 2):
        for z in range(2, 201, 2):
            if x**2 + 2*y**2 + z**2 == x*y*z:
                count += 1
                solutions.append((x, y, z))

print("Çözüm sayısı:", count)
print("Çözümler:")
for solution in solutions:
    print(solution)

Çıktı şu şekilde gelmektedir:

Çözüm sayısı: 13
Çözümler:
(4, 4, 4)
(4, 4, 12)
(4, 20, 12)
(4, 20, 68)
(4, 116, 68)
(12, 4, 4)
(12, 4, 44)
(12, 20, 4)
(44, 4, 12)
(44, 4, 164)
(68, 20, 4)
(68, 116, 4)
(164, 4, 44)


3
Pek yabancı olmadığımız bir kombinatorik sorusu ile başlayalım:

Problem: Bir kitabın sayfaları $1$'den $n$'ye kadar numaralandırıyorken klavyenin tuşlarına basılıyor.

(a) Tuşlara kaç kez basılmıştır?

(b) Belli bir $m$ rakamı kaç kez kullanılmıştır?

Örneğin, $n=11$ sayfalı bir kitap ve $m=1$ rakamı için

(a) Tuşlara $13$ defa basılmıştır.

(b) $1$ rakamı $4$ defa kullanılmıştır.

yanıtlarını (çıktılarını) alırız.



Soru 1: Python 3.9'da $n$ ve $m$ girdileri için yukarıdaki problemi çözen programı yazınız.



Açıklama:

n = int(input())

m = input().strip()

gibi int (integer) veya str (string) türünde girdi tanımlamaları ile başlayabilirsiniz.


4
Soru 2: $x, y, z, t, n$ doğal sayıları (negatif olmayan tam sayıları) verildiğinde $i \leq x$, $j \leq y$, $k \leq z$, $v \leq t $ kısıtlayıcı şartı altında $$i + 2j + 3k + 4v = n$$ denklemini sağlayan $(i, j, k, v)$ doğal sayı dörtlülerinin sayısını ve çözüm kümesini veren Python 3.9 programını yazınız.



Açıklamalar: $x, y, z, t, n$ girdileri (başlangıç verilenleri) için

x = int(input())

y = int(input())

z = int(input())

t = int(input())

n = int(input())

kodlarını kullanabilirsiniz. Örneğin $x=3, y = 3, z= 2, t = 1, n = 12$ girdileri için $i + 2j + 3k + 4v = 12$ denkleminin verilen özelliklerdeki çözüm sayısı $8$ olur. Ayrıca çözüm kümesi $S$ olmak üzere,
$$S = \{(2, 3, 0, 1), (1, 2, 1, 1), (0, 1, 2, 1), (0, 3, 2, 0), (3, 1, 1, 1), (2, 2, 2, 0), (2, 0, 2, 1), (3, 3, 1, 0) \}$$
olur.


5
Oldukça temel düzey bilgi gerektiren bir soru sunalım.


Soru 3: Kullanıcı tarafından girilen ondalıklı veya tam olabilen iki sayının toplamını veren Python kodunu yazalım.


Açıklama: Kullanıcı tarafından girilen iki sayı ile kastedilen, input() özelliğinin kullanılmasıdır. Yani sayılarımız $x$ ve $y$ olarak harflendirilirse,

x = float(input())

y = float(input())

kodunu yazabiliriz. Buradaki float() fonksiyonu, girdilerimizi 3.14 gibi ondalıklı sayı olarak seçebileceğimiz anlamına gelir. float() fonksiyonu için daha fazla bilgi için google'dan arama yapılabilir.


6
Soru 4: Verilen bir $n$ pozitif tam sayının basamak sayısını bulan Python kodunu yazınız.


Açıklama:

Verilen $n$ pozitif tam sayısı için n = int(input()) kodunu kullanalım.

Bir kelimenin harf/karakter uzunluğunu ölçmek için len() fonksiyonu kullanılabilir. Örneğin len("Geomania 2022") kodunun çıktısı $13$ olur. Yani boşluklar da birer karakter olarak hesaplanır.


7
Soru 5: Verilen iki tam sayıdan en büyüğünü bulan Python kodunu yazınız.


Açıklama:

Verilen $x, y$ tam sayıları için x = int(input()) , y = int(input()) kodunu kullanalım.


8
Soru 6: Negatif olmayan bir $n$ tam sayısı verildiğinde, $n$ sayısının faktöriyelini hesaplayan Python kodunu yazınız.


Açıklama: $0!=1$ ve $n>0$ iken $n! = 1\cdot 2 \cdot 3 \cdots n$ biçiminde, $1$ den $n$ e kadar olan pozitif tam sayıların çarpımı olarak tanımlanır.



9
Soru 7: Basit faiz formülü şu şekilde verilir: $\color{blue}{\text{Basit faiz} = \dfrac{P \cdot T \cdot R}{100}}$.

Burada, $P$ anapara, $T$ zaman ve $R$ yıllık faiz oranı $P, T, R$ değerleri girildiğinde basit faizi hesaplayan python kodunu yazalım.


10
Soru 8: Bileşik faiz formülü şu şekilde verilir: $\color{blue}{\text{Bileşik faiz} + P = P\cdot \left(1 + \dfrac{R}{100} \right)^T}$.

Burada $P$ anapara, $T$ zaman ve $R$ yıllık faiz oranıdır. $P, T, R$ değerleri girildiğinde bileşik faizi en yakın tam sayıya yuvarlayarak hesaplayan python kodunu yazalım.



Açıklama: Bir gerçel sayıyı, en yakın tam sayıya yuvarlamak için Python'ın math kütüphanesinden ceil() fonksiyonunu yardıma çağırabilirsiniz.


11
Soru 9: Rastgele seçilen altı basamaklı bir doğal sayının tam olarak iki basamağında $1$ bulunması olasılığı nedir?

$\textbf{a)}\ \dfrac{63}{755} \qquad\textbf{b)}\ \dfrac{81}{800}  \qquad\textbf{c)}\ \dfrac{7}{45}  \qquad\textbf{d)}\ \dfrac{1}{3} \qquad\textbf{e)}\ \dfrac{51}{101} $

Bu problem, 1994 Lise 1. Aşama sınavında sorulmuştur. Klasik çözümü bağlantıda verildi. Problemde istenen olasılığı hesaplayan python kodunu yazalım.



Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 
SimplePortal 2.3.3 © 2008-2010, SimplePortal