1 puan yazan GN⁺ 2025-02-24 | 1 yorum | WhatsApp'ta paylaş
  • Yalnızca dört tane 2 kullanarak sayı üretme bulmacası, izin verilen işlemlerin ne kadar genişletildiğine bağlı olarak dört işlem bulmacasından ileri düzey bir matematik oyununa dönüşür
  • Kesirler ve dört işlemle yalnızca 1’den 6’ya kadar sayılar üretilebilir; üs ve faktöriyel eklendiğinde 18, 28, 256, 65536 gibi büyük sayılar da kurulabilir
  • 2’leri birleştirip 22 veya 222 olarak görmek ya da karmaşık sayılar ve mutlak değer kullanmak, basit hesaplarla elde edilmesi zor sayıları farklı yollarla ifade etmeyi mümkün kılar
  • 7’nin üretmesi zor bir sayı olduğu bilinir; ancak gamma fonksiyonu gibi araçlara izin verilirse dört tane 2 ile doğrudan yazılabilir
  • Paul Dirac’ın genel çözümü, iç içe karekökler ve tabanı 2 olan logaritmaları kullanarak herhangi bir sayıyı ifade eder; 2 = √(2+2) dönüşümüyle de tam olarak dört tane 2 sağlanır

Dört tane 2 ile sayı üretmenin temel kuralları

  • Bulmacanın şartı, 2 rakamını tam olarak dört kez kullanmak ve başka hiçbir rakam olmadan yalnızca matematiksel işlemlerle hedef sayıyı üretmektir
  • Dört işlem ve kesirlerle bile küçük sayılar nispeten kolay üretilebilir
    • 1 = (2+2)/(2+2)
    • 2 = 2/2 + 2/2
    • 3 = 2·2 - 2/2
    • 4 = 2+2+2-2
    • 5 = 2·2 + 2/2
    • 6 = 2·2·2 - 2
  • Üs ve faktöriyele izin verildiğinde ifade edilebilen aralık büyük ölçüde genişler
    • 18 = 2^(2^2) + 2
    • 28 = (2+2)! + 2 + 2
    • 256 = (2+2)^(2+2)
    • 65536 = 2^(2^(2^2))
  • Rakamları birleştirme yöntemi de bu bulmacada sık kullanılan bir hiledir
    • 26 = 22 + 2 + 2
    • 11 = 22 / √(2+2)
    • 444 = 222 · 2
  • Özellikle 7, üretmesi zor bir sayı olarak bilinir; ancak gamma fonksiyonu kullanılırsa 7 = Γ(2) + 2 + 2 + 2 şeklinde ifade edilebilir
  • Math StackExchange başlığında integral, devirli ondalıklar ve kombinasyon operatörlerini kullanan örnekler bulunuyor
  • Karmaşık sayılar ve mutlak değer kullanılırsa 12 = |2 + 2√-2|² gibi ifadeler de mümkündür

Dirac’ın genel çözümü

  • Paul Dirac, tüm sayılara uygulanabilecek bir genel çözüm buldu; bunun temel aracı iç içe kareköklerdir
  • 2’ye art arda karekök uygulandığında bu, aşağıdaki gibi üstel biçimde yazılabilir
    • √2 = 2^(1/2) = 2^(2^-1)
    • √√2 = 2^(1/4) = 2^(2^-2)
    • √√√2 = 2^(1/8) = 2^(2^-3)
  • Karekök n kez uygulanırsa √√...√2 = 2^(2^-n) biçimi elde edilir
  • Buna bir kez tabanı 2 olan logaritma uygulanırsa sonuç 2^-n olur, tekrar logaritma alındığında -n elde edilir
  • Dolayısıyla herhangi bir n, n = -log₂(log₂(√√...√2)) biçiminde ifade edilebilir
  • Asıl ifade yalnızca üç tane 2 kullandığı için, 2 = √(2+2) kullanılarak tek bir 2’nin yerine geçilir ve böylece tam olarak dört tane 2 kullanılan bir ifade elde edilir
  • Örneğin 7, karekök 7 kez iç içe yazılarak şöyle gösterilebilir 7 = -log_{√(2+2)}(log₂(√√√√√√√2))
  • İfadedeki n, gerçek gösterimde yer alan bir rakam değil; karekök tekrar sayısını belirtmek için kullanılan yardımcı bir gösterimdir
  • Sonuç olarak tüm sayıları ifade etmenin yolu açılır, fakat gereken sayıda karekök işaretini eksiksiz yazma görevi geriye kalır

1 yorum

 
GN⁺ 2025-02-24
Hacker News yorumları
  • Fonksiyonlara izin verdiğiniz anda oyunun amacından vazgeçilmiş gibi geliyor
    Örneğin gama fonksiyonu (n-1)! olduğuna göre, artık dört tane 2 ve bir tane 1 ile 7 yapmış oluyoruz
    Fonksiyon çağrısının içine sayı saklayabiliyorsanız her zaman başarmak fazla kolaylaşıyor

    • +, -(ikili/tekli), ×, ÷ de fonksiyondur; üs alma da fonksiyondur. O halde neden onlara izin verilmeli?
      Bu tür bulmacalarda elementer fonksiyonların kapsamı konusunda her zaman görüş ayrılığı olabilir, ama karekökü yasaklamaya gerek olduğunu düşünmüyorum
      Gama fonksiyonunun (n-1)! olduğu sözüne gelince, 2 de sonuçta yalnızca S(S(0))dır (https://en.wikipedia.org/wiki/Peano_axioms)
      Paul Dirac'ın kurulumuna önemsiz demek zor; gerçekten önemsiz mi gördüğünüzü yoksa daha basit bir kurulum mu bildiğinizi merak ediyorum
    • Gama fonksiyonu ortaya çıkar çıkmaz benim de ilk aklıma gelen aynı şeydi
      Gama fonksiyonuna izin verip başka fonksiyonlara neden vermiyoruz? Keyfi bir fonksiyon koyarsanız oyunu istediğiniz gibi çözebilir hale gelirsiniz
      Sonuçta yazının en başından itibaren bunun kuralları düzgün tanımlanmamış bir problem olduğunu düşünüyorum. İzin verilen fonksiyon ya da işlem kümesini açıkça belirtmek gerekir; bilginin düzeyine göre problemin nasıl genişlediğini göstermeye yönelik amaç, böyle düzeltilse de korunabilir
    • Sonuçta eğlence için yapılıyor ve gama fonksiyonu ile karekök yeterince temel sayılabilir
      İsterseniz farklı fonksiyon alt kümeleriyle sınırlayıp, o küme içinde hangi sayıların mümkün ya da imkânsız olduğunu kanıtlamayı da deneyebilirsiniz
      Yazıda da “matematiksel araçlar” denmişti, keyfi fonksiyonlar denmemişti
    • Eleştiride haklılık payı var, ama başkalarının dediği gibi sorun “fonksiyonlara izin verilmesi”nin kendisi değil. Çünkü temel matematik işlemleri de fonksiyondur
      Ancak yalnızca tamsayı demetlerini tamsayılara götüren fonksiyonlara ((Z, Z, ...) -> Z) izin verilirse, oyunun asıl ruhu korunur
      Böyle yapınca karekök ve logaritma dışarıda kalır; toplama, çıkarma ve çarpma kalır ama bölme dışarıda kalır. Faktöriyel n! ve negatif olmayan üslere yükseltme de izinli olabilir
      Bu kısıt içinde genel bir çözüm oluşturulabilir mi merak ediyorum
    • Dirac çözümünde gama fonksiyonu yok; yalnızca N tane karekök ve 2 tane logaritma kullanılıyor
  • “Herhangi bir matematik işlemi kullanmak” serbestse kolay; sadece ardıl fonksiyonu kullanırsınız
    S(n) = n+1
    6 = 2*2*2-2
    7 = S(2*2*2-2)
    8 = S(S(2*2*2-2))
    Böyle devam eder

    • “Başka sayı kullanmama” kısıtına bakınca ilk satırdaki 1 hile gibi geliyor
    • Okulda çok matematik gördüm, mühendislik yapıyorum ve her gün matematik kullanıyorum; YouTube'da da birçok matematik kanalına aboneyim ama bu fonksiyonu hayatımda ilk kez duydum
      Bu bulmacanın gerçek kuralları yok ama bu fonksiyon hiç de yaygın biliniyormuş gibi gelmiyor
    • Verilen bir tamsayı için dört tane 2 ile yapılabilecek en kısa ifadeyi bulmak daha ilginç bir meydan okuma olabilir
    • Ben de aynı şeyi düşündüm. Karekök de gösterimin arkasına 2 saklamanın bir yolu
      Hangi operatörün kaç kez kullanılabileceği somut olarak belirlenmezse tüm proje pek tutarlı olmuyor
    • Lambda hesabı sohbete dahil oldu
  • Bununla ilgili olarak, 1964'te 26 yaşındaki Donald Knuth'un yazdığı “Representing numbers using only one 4” de var (https://www.jstor.org/stable/2689238)
    Selected Papers on Fun and Games kitabının 10. bölümünde de yeniden yayımlandı; yalnızca bir tane 4 sayısı ve üç işlem √x(karekök), ⌊x⌋(taban fonksiyonu), x!(faktöriyel) kullanıyor
    Tüm tamsayıların bu şekilde gösterilip gösterilemeyeceğine dair hâlâ çözülmemiş bir varsayımla bitiyor
    2011 kitabına eklenen ek, daha erken tarihli, 1962'den J. H. Conway ve M. J. T. Guy'ın 1,5 sayfalık “π in Four 4's” makalesini de tanıtıyor. İkisi Cambridge öğrencisiyken yazılmış benzer bir fikir: https://archive.org/details/eureka-25/page/18/mode/1up?view=...
    Örneğin 5 = ⌊√√√√√(4!)!⌋; çünkü 24!, 5^32 ile 6^32 arasındadır

  • Sadece bana mı öyle geliyor bilmiyorum ama sqrt(2*2) veya sqrt(2^2) yerine sqrt(2+2) seçilmesi tuhaf geldi
    Neden 2=sqrt(2+2) olduğunu gösteren sebebi gereksiz yere gizliyor

    • Güzel nokta, ama bunu yalnızca yazarın tuhaf tercihi olarak görmek zor
      Yazının tamamı, her bir argüman, genel tez, cümleler, biçimlendirme vb. her şeye bilişsel bant genişliği harcanıyor; ayrıca zaman baskısı da olmuş olabilir
      Eleştirmen rahatça tek bir noktaya odaklanabildiği için bu doğal görünüyor :)
    • Bir yerlerde maliyeti düşük işlemleri ödüllendiren golf skoru gibi bir şey olabilir
      “Dirac hack” epey puan götürür gibi
    • Gerçekten mi? Neden? 2+2, 2*2, 2^2 hepsi açıkça 4 eder ve sqrt(4)=2; + işaretinin diğerlerinden neden daha tuhaf olduğunu anlamıyorum
  • Şahsen sadelik tarafını daha çok seviyorum
    Tek karakterli komutlar kullanan bir yığın makinesi yapmıştım ve bu problemin bir varyasyonunu çözmem gerekiyordu. Sayılar yalnızca 0’dan 9’a kadardı; 23 karakterleri önce 2’yi, sonra 3’ü yığına itmek anlamına geliyordu. Gerçek 23 sayısını ifade etmek için 45*3+ gibi bir ifade yazmak gerekiyordu
    Bu yüzden geriye her tamsayıyı en az karakter sayısıyla kodlama problemi kalmıştı
    Kullanılabilecek araçlar şunlardı: 0~9 rakamları, P: Pi, *: (a * b), /: (a / b), -: (a - b), +: (a + b), s: sin(a), c: cos(a), q: sqrt(a), l: log(a), ~: abs(a), #: round(a), $: Math.floor(a), C: clamp(a), <: min(a, b), >: max(a, b), ^: pow(a, b), a: atan2(a, b), %: positiveMod(a, b), !: (1 - a), ?: (a <= 0 ? 0 : 1), o: c ile ölçeklenmiş a xor b; ((a*c) xor (b*c))/c, d: yığının en üstünü kopyalama, :: en üstteki iki öğeyi değiştirme, ;: en üstteki öğe ile üçüncü öğeyi değiştirme
    Bir gün bu yığın makinesini karmaşık sayı yığını olarak yeniden yaparsam neler yapılabileceğini merak ediyorum
    Bir dahaki sefere böyle bir şey paylaşırken telefondan yazmamayı düşünüyorum

    • Genel yanıt hesaplanamaz olabilir
      https://en.wikipedia.org/wiki/Kolmogorov_complexity
    • Her sayıyı “10 ile çarp ve o rakamı ekle” komutuyla oluşturup, boşluk gibi 0’ı yığına iten ayrı bir komut eklesek nasıl olur? O zaman 23, " 23" olarak ifade edilebilir
    • https://www.hacker.org/hvm/ (2008) aklıma geldi
    • Oldukça çok sayının 9’luk ya da 10’luk tabanda kodlanacağını düşünüyorum. Genelde digit + * digit + * gibi bir kalıbın tekrarı ya da buna denk bir biçim olur gibi
  • “2 rakamını yalnızca üç kez kullanıyor” denebilecek küçük bir kusur var; ama bu, kök gösteriminin ortak değeri varsayılan kabul ederek 1/2 kuvvetini gizlediği gerçeğini görmezden gelince geçerli
    Gizli 2’ler epey fazla

    • Kök gösteriminin gerçekten bir şeyi gizlediğini söylemek zor. Yarım kuvvete neredeyse eşit olduğu gerçeği bir teorem
      O zaman 2’nin de 1+1i gizlediğini kabul etmemiz gerekir mi; oyun imkânsız mı olur?
      Yüksek dereceli polinomlara kıyasla ikinci dereceden polinomların çok daha yaygın olması açısından, karekök rastgele bir üs almadan daha temel hissettiriyor
      Süslü fonksiyonlara izin verildikten sonra oyunun gülünçleştiğini söyleyen çok kişi var; ama şahsen, somut kural kısıtları olmasa bile tatmin edici çözümler bulmanın keyifli olduğunu düşünüyorum
  • Bununla ilgili bir tersine mühendislik/CTF görevi vardı. Hileyi önlemek için adını söylemeyeceğim, ama benim çözümüm yığın işaretçisine belirli bir sayı ekleyen shellcode enjekte etmekti
    Ancak shellcode’un tamamında, eklenecek sayı dahil, yalnızca ASCII alfasayısal baytlar kullanılabiliyordu
    Bu yüzden yasaklı baytları kullanmadan istenen sayıya ulaşacak, toplanan sayı kombinasyonlarını bulmak için bir SAT çözücü kullandım
    https://docs.google.com/presentation/d/19K7SK1L49reoFgjEPKCF...

  • Mobil oyun Tchisla aklıma geldi. Verilen tek bir sayı ve birkaç operatör, karekök ve ! vb. kullanarak 1000’e ya da 10000’e kadar tüm sayıları oluşturmanız gereken bir oyun
    Oldukça eğlenceli; oynadıkça strateji geliştiriyorsunuz ve kullanıcı deneyimi de basit ve verimli. Yalnız muazzam zaman yediğini önceden bilmek gerek
    [0] https://apps.apple.com/fr/app/tchisla-number-puzzle/id110062...

  • Klasik dört 4 problemi var; çocukken “The Man Who Counted” adlı kitaptan öğrenmiştim
    https://en.wikipedia.org/wiki/Four_fours
    https://en.wikipedia.org/wiki/The_Man_Who_Counted

    • Benim çocukken öğrendiğim de o versiyondu. Hazırladığım şu sayfa da ilginç olabilir
      The Definitive Four Fours Answer Key
      https://dwheeler.com/fourfours/
    • Tam olarak oydu
      Onunla yanlış tümevarımı öğrenmiştim. İnsanların sıraya dizildiği, sırtlarına bir şey yapıştırıldığı ve bunun ne olduğunu tahmin etmeleri gereken hikâyeyi de severdim
  • Etkileyici, ama o sqrt sembolünün içinde gizli çok fazla 2 var