Sayılara Bambaşka Bir Bakış
Matematik dünyasında bazı diziler vardır ki ilk bakışta basit görünür, fakat derinine indikçe şaşırtıcı derecede karmaşık yapılar barındırır. Look-and-Say (Bak ve Söyle) dizisi de tam olarak böyle bir dizi. Basit bir kuralla başlar, ancak ortaya çıkan sayıların büyümesi ve içerdiği matematiksel özellikler oldukça ilgi çekicidir.
Bu yazıda Look-and-Say dizisinin ne olduğunu, nasıl oluşturulduğunu, örneklerini ve dizinin arkasındaki ilginç matematiksel gerçekleri keşfedeceğiz.
Look-and-Say Dizisi Nedir?
Look-and-Say dizisi, bir önceki terime bakılarak oluşturulan özel bir sayılar dizisidir. Dizinin mantığı çok basittir:
Her terim, bir önceki terimdeki rakamların “kaç tane” ve “hangi rakam” olduğunu sırasıyla söyleyerek oluşturulur.
Dizinin başlangıç terimi genellikle 1 olarak alınır.
Dizi Nasıl Oluşturulur?
Başlangıç: 1
- terime bak: "Bir tane 1 var" → 11
- terime bak: "İki tane 1 var" → 21
- terime bak: "Bir tane 2, bir tane 1" → 1211
- terime bak: "Bir tane 1, bir tane 2, iki tane 1" → 111221
Böyle devam eder…
Dizinin ilk birkaç terimi şöyledir:
- 1
- 11
- 21
- 1211
- 111221
- 312211
- 13112221
- 1113213211
Bu şekilde her yeni terim, tamamen bir önceki terimin rakamlarının sözlü tarifinden oluşur.
Neden Bu Kadar İlginç?
Look-and-Say dizisi sadece bir “matematik oyunu” değildir; arkasında çok daha derin bir matematiksel yapı vardır.
1. Terimler Çok Hızlı Büyür
Dizi çok hızlı bir şekilde uzar; terimlerdeki rakam sayısı yaklaşık 1.303577269... (Conway sabiti) oranında büyür.
2. Belirli Rakamlar Hiç Görünmez
Dizide hiçbir terimde 4, 5, 6, 7, 8 veya 9 rakamları asla bulunmaz.
Çünkü dizi yalnızca sayıları “okuyarak” oluşur ve tekrar sayıları yalnızca 1, 2 veya 3 şeklinde çıkar.
3. Conway’in “Elementler” Keşfi
Ünlü matematikçi John Conway, Look-and-Say dizisini analiz ederken diziyi parçalarına ayıran 92 farklı “atom” yapısı olduğunu buldu. Bu yapıların tıpkı kimyasal elementler gibi birleşerek diziyi oluşturduğunu göstermiştir.
Python ile Look-and-Say Dizisi Oluşturmak
Teknik meraklılar için, diziyi üretmek oldukça kolaydır. İşte kısa bir Python fonksiyonu:
def look_and_say(n):
term = "1"
for _ in range(n - 1):
next_term = ""
count = 1
for i in range(1, len(term)):
if term[i] == term[i - 1]:
count += 1
else:
next_term += str(count) + term[i - 1]
count = 1
next_term += str(count) + term[-1]
term = next_term
return term
# Örnek: ilk 10 terimi yazdır
for i in range(1, 11):
print(i, look_and_say(i))
Wikipedia Look-and-Say