K.Makise
Kilopat
- Katılım
- 28 Kasım 2020
- Mesajlar
- 4.799
- Makaleler
- 4
- Çözümler
- 81
Daha fazla
- Cinsiyet
- Erkek
Collatz Problemi, matematikte çözülemeyen problemlerden biridir. Kısaca bahsetmek gerekirse: Belirli kurallar çerçevesinde işlemler yapıyoruz ve sonuç her zaman 1 oluyor, kurallar şöyle:
Örnek:
Sayımız 17 olsun bu sayı tek, 3 X 17 + 1 = 52 (çift),
52 / 2 = 26 (çift),
26 / 2 = 13 (tek),
13 X 3 + 1 = 40 (çift),
40 / 2 = 20 (çift),
20 / 2 = 10 (çift),
10 / 2 = 5 (tek),
5 X 3 + 1 = 16 (çift),
16 / 2 = 8 (çift),
8 / 2 = 4 (çift),
4 / 2 = 2 (çift),
2 / 2 = 1
Böyle enteresan bir problem ben de deneme amaçlı bu işlemi belirlenen sayıya kadar yapan bir Python kodu yazdım, öyle eğlence amaçlı isteyen deneyebilir ben 100.000.000'a kadar denedim ve sonuç hep 1 çıktı.
- Bir sayı seçiyoruz.
- Sayı 1'e eşitse işlem yapmıyoruz.
- Eğer sayı çift ise ikiye bölüyoruz.
- Eğer sayı tek ise 3 ile çarpıp 1 ekliyoruz.
Örnek:
Sayımız 17 olsun bu sayı tek, 3 X 17 + 1 = 52 (çift),
52 / 2 = 26 (çift),
26 / 2 = 13 (tek),
13 X 3 + 1 = 40 (çift),
40 / 2 = 20 (çift),
20 / 2 = 10 (çift),
10 / 2 = 5 (tek),
5 X 3 + 1 = 16 (çift),
16 / 2 = 8 (çift),
8 / 2 = 4 (çift),
4 / 2 = 2 (çift),
2 / 2 = 1
Böyle enteresan bir problem ben de deneme amaçlı bu işlemi belirlenen sayıya kadar yapan bir Python kodu yazdım, öyle eğlence amaçlı isteyen deneyebilir ben 100.000.000'a kadar denedim ve sonuç hep 1 çıktı.
Python:
number = None
tested_number = None
def even(num):
global number
number = num / 2
def odd(num):
global number
number = num * 3 + 1
def even_or_odd(num):
global number
number = num
while True:
if number == 1:
with open("Collatz_problem.txt", "a")as file:
file.write(f"Tested number: {tested_number}, result: 1\n\n")
break
if number % 2 == 0:
even(number)
else:
odd(number)
for i in range(2, 1000001):
tested_number = i
print(i)
even_or_odd(i)
Son düzenleme: