Emoji Problemi (2022)
(artofproblemsolving.com)- İnternetteki meyve ve emoji işlem bulmacasının bir varyantını tam sayılı Diofant denklemi olarak ele alıyor ve pozitif tam sayı çözümler üretme sürecini izliyor
- Temel araç, tam sayı çözümleri doğrudan aramak yerine önce rasyonel noktalar bulmak ve doğrular ya da teğetlerle yeni rasyonel noktalar üreten geometrik yöntem
- Değişken dönüşümü ve döndürmeden geçen denklem simetrik bir eliptik eğriye dönüşüyor; ancak ilk bakışta görülen kolay noktalar özgün problemin pozitif çözümlerine doğrudan götürmüyor
- Eliptik eğride iki rasyonel noktayı birleştiren doğru ya da bir noktadaki teğet üçüncü bir kesişim noktası oluşturur; Vieta formülleri sayesinde bu nokta da rasyonel nokta olarak kalır
- Mathematica ile daha az bariz bir nokta bulunup işlemler tekrarlandıktan sonra, özgün değişkenlere dönüldüğünde geçerli olan devasa bir pozitif tam sayı çözümü kuruluyor
İnternetteki emoji bulmacasının bir matematik problemine dönüşme süreci
- İnternette, muz sayısı gibi ayrıntıları kafa karıştırıcı yaparak farklı cevaplar çıkmasını sağlayan emoji işlem bulmacaları yaygındı
- 2017 başında r/math’te, Facebook tarzı meyveli matematik bulmacalarından bıkıldığına dair bir reddit thread açıldı ve bir kullanıcı meyve görselleri kullanan daha zor bir problem hazırladı
- Sridhar Ramesh bu problemi biraz değiştirip geniş biçimde yaygınlaştırınca, en küçük çözümünün çok uzun olduğu ve eliptik eğri bilgisi gerektirdiği düşünülen kötü şöhretli bir probleme dönüştü
- Amaç, bu değiştirilmiş emoji problemini gerçekten çözme sürecini anlatmak
Hazırlık örneği: Pisagor üçlüleri ve rasyonel noktalar
- Önce daha kolay bir örnek olarak Pisagor üçlülerini bulma problemi ele alınıyor
- Tam sayı çözümleri doğrudan bulmak yerine, karşılık gelen birim çember üzerindeki rasyonel noktaları bulma problemine çevrilince yapı basitleşiyor
- Birim çember üzerindeki bir rasyonel noktadan başlayıp rasyonel eğimli bir doğru çizildiğinde, doğrunun çemberle kesiştiği ikinci nokta da rasyonel oluyor
- Doğru ile çemberin kesişim noktaları bulununca ikinci dereceden bir denklem elde ediliyor
- Katsayılar rasyonel ve köklerden biri zaten rasyonel olduğundan, Vieta formüllerine göre diğer kök de rasyonel oluyor
- Tersine, birim çember üzerindeki başka herhangi bir rasyonel noktanın başlangıç noktasıyla onu birleştiren doğrusunun eğimi rasyonel olduğundan, tüm rasyonel noktalar aynı şekilde elde edilebiliyor
- Bu süreç, tüm Pisagor üçlülerini iki pozitif tam sayı ve bir kat ile ifade eden standart forma götürüyor
- Önemli desen, doğruyla yeni nokta elde etme yöntemi; özgün emoji probleminde de benzer bir fikir kullanılıyor
Özgün denklemi eliptik eğriye dönüştürmek
- Emoji probleminin denklemi, paydalar yok edildikten sonra tam sayı çözümü yerine değişken oranlarına ilişkin rasyonel noktalar bulma problemine dönüşüyor
- Yalnızca pozitif tam sayı çözümlerini doğrudan aramak yerine, önce pozitif ve negatifleri de içeren tüm rasyonel noktalar araştırılıyor
- Grafik, iki değişkenin yer değiştirmesine göre değişmediği için eğik bir simetriye sahip
- Kolaylık için değişken dönüşümüyle grafik döndürülerek eksenlere göre simetrik bir biçime getiriliyor ve bu eğriye eliptik eğri deniyor
- Grafikte gözle görülebilen kolay rasyonel noktalar var, ancak bunlar özgün problemin geçerli pozitif çözümlerine karşılık gelmiyor
- Bu yüzden kolay noktaları başlangıç noktası alıp daha fazla rasyonel nokta üretmek gerekiyor
Doğru hilesi eliptik eğride de çalışıyor
- Eliptik eğri üzerindeki iki rasyonel nokta (P) ve (Q) bir doğruyla birleştirildiğinde, bu doğru eğriyle üçüncü bir nokta (R)’de kesişir
- Bu üçüncü kesişim noktası da rasyonel nokta olur
- Doğru denklemi eliptik eğri denkleminde yerine konduğunda bir değişken için üçüncü dereceden bir denklem ortaya çıkar
- Üçüncü dereceden denklemin katsayıları rasyoneldir
- Zaten iki kök (P) ve (Q)’nun koordinatlarından gelen rasyonel sayılar olduğundan, Vieta formülleri gereği üçüncü kök de rasyoneldir
- Doğru denkleminde yeniden yerine konduğunda kalan koordinat da rasyonel olarak belirlenir
- (P=Q) olduğunda iki noktayı birleştiren doğru yerine o noktadaki teğet kullanılır ve kesişim noktası çokluk da hesaba katılarak hesaplanır
- İlk bulunan kolay noktalar birleştirildiğinde ya da bu noktalara teğet çizildiğinde yalnızca birkaç nokta tekrarlanır; yeni ve kullanışlı noktalara genişlemez
- Bu noktalar torsion point olduğundan, aynı doğru hilesi tekrarlansa da artık yeni bir noktaya kaçış sağlanamaz
Geçerli bölge içindeki rasyonel noktayı bulmak
- Mathematica ile eliptik eğri üzerinde daha az bariz rasyonel noktalar arandı ve bunlardan biri sonraki hesaplamalarda kullanıldı
- Hedef rastgele bir rasyonel nokta değil, özgün değişkenlere dönüldüğünde üç değerin de pozitif olduğu bir nokta bulmak
- Tüm değişkenler negatifse işaretlerin hepsi ters çevrilerek pozitif çözüm elde edilebileceğinden, bir değişkenin pozitif olduğu varsayılıp koşullar geriye doğru izleniyor
- Bu koşul, dönüştürülmüş koordinat düzleminde belirli bir yeşil bölge olarak görünüyor; eliptik eğri üzerindeki rasyonel noktayı bu bölgenin içine taşımak gerekiyor
- Elle hesaplamak çok zahmetli olduğundan, doğru ve teğet işlemlerinden çıkan kesişim noktalarının koordinat formülleri Mathematica ile hesaplandı
- İki noktayı birleştiren doğrunun üçüncü kesişim noktası ve bir noktadaki teğetin oluşturduğu üçüncü kesişim noktası için koordinat formülleri üretildi; ifadeler çok karmaşıklaştıkça sayılar da büyüdü
Son pozitif tam sayı çözümünü kurmak
- Başlangıç rasyonel noktasında teğet çizip yeni bir nokta elde etme, sonra o noktada tekrar teğet çizerek bir sonraki noktayı elde etme süreci tekrarlandı
- Birkaç teğet işleminden sonra da hedef bölgeye doğrudan girilemeyince, ek olarak bir noktanın koordinat işareti değiştirilmiş hâliyle birleştirilip başka bir nokta üretildi
- Sonunda, önceden ayrılmış “iyi” bir rasyonel nokta ile daha önce elde edilen büyük koordinatlı nokta birleştirilerek nihayet hedef yeşil bölgenin içindeki bir rasyonel noktaya ulaşıldı
- Bu son rasyonel nokta özgün değişkenlere geri döndürülüp paydaların en küçük ortak katı ile çarpılarak pozitif tam sayı çözümü kuruldu
- Son doğrulamada, kurulan devasa tam sayı çözümünün özgün emoji probleminin denklemini sağladığı onaylandı
1 yorum
Hacker News yorumları
Ancak
xgibi şeyler yerine pofuduk bulut, yıldız gibi adlar kullanırdım; çocuklar sinir olsalar da ilgilerini korudular ve sonradan arkadaşlarına yardım ederken aynı şeyi yaptıklarını söyledilerBu tür soyutlamayı ilk kez öğrenirken nasıl hissettirdiğini unutmak kolay;
xin özel bir şey olmadığını, güneş ya da “toplam kedi sayısı” gibi bir ifade de olabileceğini göstermek önemliydiAma sonradan yayımlandığında okunabilirlik gerçekten kötüleşiyor. “Bu ifadede önemli rol oynayan bir terim var ama acaba ne anlama geliyor? Birisi buna
φdemiş, o yüzden bilmiyorum” gibi durumlar oluyorProgramcıların adlandırmada kötü olduğunu düşünüyorsanız matematikçilere bakmalısınız diye şaka yaparım. Matematikçiler ad verememe becerileriyle tuhaf bir gurur duyarlar
En kötüsü, doğrudan matematik makalesinden türetilmiş programlardır. Bir değişkenin içinde korelasyon katsayısı varsa ona öyle deyin. Fikirleri paylaşmak için binlerce yıllık dilimiz ve işaretlerimiz var; bunu şifreleyip
rhodemeyinAma gerçekte şöyle oldu: https://chatgpt.com/share/682cce62-c53c-8003-be2c-2929395868...
Özetle model kendinden emin şekilde tahminler yaptı, hesapladı, yanlış olduğuna karar verdi, sonra tekrar tekrar denemeye devam etti; hatta aynı tahminleri yineledi. Simetriyi hiç fark edemedi ve tamamen yapısız bir fail gibi davrandı
Sonunda bu bulmacanın çözümü olmadığını güçlü biçimde ileri sürdü; ilerideki bulmacalarda da model böyle kötü davranırsa inancımı güncellemem gerekecek
ChatGPT o3’e de sordum ve 11,5 dakika düşündü: https://chatgpt.com/share/682d0993-db4c-8004-a66c-3908ef7203...
Wolfram Alpha’ya bağlanan bir ChatGPT sürümü yok muydu? Onu deneyip denemediğini merak ediyorum
Daha fazla bağlam ve ilgili örnekler burada: https://x.com/TheOisinMoran/status/1299124512240398336
Hangi değişkenin nerede kullanıldığını izlemek çok daha kolay oluyor ve kodun saf yapısını bir bakışta kavramak kolaylaşıyor. Daha önce paylaştığım örnek burada: https://imgur.com/F27ZNfk
Ne yazık ki Rust ve JS gibi modern dillerin çoğu XID_Start/XID_Continue önerisini izliyor; bana kalırsa motivasyonu pek sağlam görünmüyor ve tüm emoji karakterlerini tanımlayıcılardan dışlıyor
4yerine başka sabitler kullanılırsa en küçük çözüm gerçekten devasa bir sayı olabilir: https://observablehq.com/@robinhouston/a-remarkable-diophant...İnsanları tartıştıracak kadar kolayca karıştırılan bir nokta mı var, yoksa herkesin aceleyle ukalalık yapmasına yol açacak kadar kolay bir problem mi?
Ben
10, 4, 2buldum; belki de kafam karışmıştırBu yüzden
1 + 10 + 3olarak yorumlanabiliyor gibi görünüyor