EBOB – EKOK – Konu Anlatımı
Bu sayfada EBOB – EKOK hesabının mantığını, nasıl kullanıldığını ve dikkat edilmesi gerekenleri bulursun.
EBOB – EKOK (En Büyük Ortak Bölen / En Küçük Ortak Kat)
Bu hesaplayıcı, iki tam sayının: EBOB’unu (en büyük ortak bölen) ve EKOK’unu (en küçük ortak kat) bulur. Hesaplamada Öklid (Euclid) Algoritması kullanılır.
1) Kavramlar: EBOB ve EKOK ne demek?
1.1 EBOB (gcd)
EBOB, iki sayıyı da kalansız bölen en büyük pozitif sayıdır.
- Örn: 12’nin bölenleri: 1, 2, 3, 4, 6, 12
- 18’in bölenleri: 1, 2, 3, 6, 9, 18
- Ortak bölenler: 1, 2, 3, 6 → en büyüğü 6
- Bu yüzden EBOB(12, 18) = 6
1.2 EKOK (lcm)
EKOK, iki sayının da katı olan en küçük pozitif sayıdır.
- 12’nin katları: 12, 24, 36, 48, 60, 72, ...
- 18’in katları: 18, 36, 54, 72, ...
- Ortak katların en küçüğü: 36
- Bu yüzden EKOK(12, 18) = 36
2) Öklid Algoritması: EBOB’u hızlı bulmanın yolu
EBOB’u doğrudan bölenleri listeleyerek bulmak büyük sayılarda zorlaşır. Öklid Algoritması, EBOB’u çok hızlı bulur.
2.1 Temel fikir
EBOB(a, b) = EBOB(b, a mod b) (b ≠ 0)
Buradaki “mod”, bölme işlemindeki kalandır. Örneğin 18 mod 12 = 6 çünkü 18 = 12·1 + 6.
2.2 Neden doğru?
a ve b’nin ortak böleni olan herhangi bir d sayısı:
- d | a ve d | b ise, d aynı zamanda (a − k·b)’yi de böler.
- a mod b = a − ⌊a/b⌋·b olduğundan, d | (a mod b) olur.
Yani a ve b’nin ortak bölenleri ile b ve (a mod b)’nin ortak bölenleri aynı kümedir. Dolayısıyla “en büyük ortak bölen” de aynıdır.
2.3 Adım adım örnek (12, 18)
- Başla: a=12, b=18 → algoritmada genelde |a|, |b| alınır (işaret önemsiz).
- 18 mod 12 = 6 → EBOB(18, 12) = EBOB(12, 6)
- 12 mod 6 = 0 → EBOB(12, 6) = EBOB(6, 0)
- b=0 olduğunda sonuç: EBOB = 6
2.4 Koddaki döngü ne yapıyor?
Kod şu mantığı uygular:
- Her turda “kalan”ı bulur: t = a % b
- a’yı b yapar
- b’yi kalan yapar
- b sıfır olunca durur ve a EBOB olur
3) EKOK nasıl bulunur? (EBOB ile bağlantı)
En çok kullanılan pratik bağıntı:
EKOK(a, b) = |a·b| / EBOB(a, b)
3.1 Neden bu formül çalışıyor?
a ve b’yi asal çarpanlarına ayıralım:
- a = p¹ᵃ · p²ᵃ · ...
- b = p¹ᵇ · p²ᵇ · ...
EBOB: her asal için küçük üssü alır (min).
EKOK: her asal için büyük üssü alır (max).
a·b çarpımında üssler “toplanır”. Bu çarpımın içinde EBOB’nin aldığı “min” kısmı da vardır. O min kısmı bölerek, aslında EKOK’nin istediği “max” yapısını elde etmiş olursun.
3.2 Küçük örnekle sezgi
- 12 = 2²·3¹
- 18 = 2¹·3²
- EBOB = 2¹·3¹ = 6
- EKOK = 2²·3² = 36
- |12·18|/6 = 216/6 = 36 ✅
4) Sıfır ve negatif sayılar: özel durumlar
4.1 Negatif sayılar
EBOB ve EKOK genelde pozitif tanımlanır. Bu yüzden hesaplayıcı önce mutlak değer alır: gcd(a, b) içinde a = |a|, b = |b| yapılmasının sebebi budur.
4.2 Sıfır (0) durumu
- EBOB(a, 0) = |a| (a ≠ 0)
- EKOK(a, 0) = 0 kabul edilir
Mantık:
- 0’ı bölen her sayı vardır ama “ortak bölen” açısından a’nın bölenleri belirleyicidir → EBOB = |a|
- 0’ın katları yalnızca 0’dır; dolayısıyla ortak katın en küçüğü 0 alınır → EKOK = 0
İki sayı da 0 olamaz kontrolü bu yüzden var: EBOB(0,0) matematikte belirsiz kabul edilir (sonsuz bölen problemi).
5) Hesaplayıcı sonuçlarını nasıl yorumlamalısın?
5.1 EBOB ne işe yarar?
- Kesir sadeleştirme: 24/36 → EBOB=12 → 2/3
- Parça-bölme: “eşit paketlere ayırma” problemleri
- Ortak ölçü / en büyük eşit parça bulma
5.2 EKOK ne işe yarar?
- Periyot problemleri: “iki olay kaç dakikada bir aynı anda olur?”
- Payda eşitleme: 1/6 + 1/8 için ortak payda EKOK(6,8)=24
- Takvim/tekrar eden döngüler
6) Bu aracın kapsamı ve sınırları
- Bu araç iki sayı için hesap yapar.
- İstersen 3+ sayı için genişletebiliriz:
- EBOB(a,b,c) = EBOB(EBOB(a,b), c)
- EKOK(a,b,c) = EKOK(EKOK(a,b), c)
- Çok büyük sayılarda (JavaScript Number sınırları) çarpım (x*y) taşabilir. Bu yüzden aşırı büyük değerler için BigInt versiyonunu da yazabiliriz.
Not: Bu anlatım temel matematik tanımlarına göre hazırlanmıştır. Farklı kaynaklarda EKOK’un “pozitif” olduğu vurgulanır; burada da sonuçlar pozitif yorumlanır.
