Dört tane 2 ile tüm tam sayıları üretmek
(eli.thegreenplace.net)- 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/23 = 2·2 - 2/24 = 2+2+2-25 = 2·2 + 2/26 = 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) + 228 = (2+2)! + 2 + 2256 = (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 + 211 = 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^-nolur, tekrar logaritma alındığında-nelde 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
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ış oluyoruzFonksiyon ç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ızcaS(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 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
İ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
Ancak yalnızca tamsayı demetlerini tamsayılara götüren fonksiyonlara
((Z, Z, ...) -> Z)izin verilirse, oyunun asıl ruhu korunurBö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 olabilirBu kısıt içinde genel bir çözüm oluşturulabilir mi merak ediyorum
“Herhangi bir matematik işlemi kullanmak” serbestse kolay; sadece ardıl fonksiyonu kullanırsınız
S(n) = n+16 = 2*2*2-27 = S(2*2*2-2)8 = S(S(2*2*2-2))Böyle devam eder
Bu bulmacanın gerçek kuralları yok ama bu fonksiyon hiç de yaygın biliniyormuş gibi gelmiyor
Hangi operatörün kaç kez kullanılabileceği somut olarak belirlenmezse tüm proje pek tutarlı olmuyor
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ıyorTü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^32ile6^32arasındadırSadece bana mı öyle geliyor bilmiyorum ama
sqrt(2*2)veyasqrt(2^2)yerinesqrt(2+2)seçilmesi tuhaf geldiNeden
2=sqrt(2+2)olduğunu gösteren sebebi gereksiz yere gizliyorYazı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 :)
“Dirac hack” epey puan götürür gibi
2+2,2*2,2^2hepsi açıkça 4 eder vesqrt(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ı;
23karakterleri önce 2’yi, sonra 3’ü yığına itmek anlamına geliyordu. Gerçek 23 sayısını ifade etmek için45*3+gibi bir ifade yazmak gerekiyorduBu yüzden geriye her tamsayıyı en az karakter sayısıyla kodlama problemi kalmıştı
Kullanılabilecek araçlar şunlardı:
0~9rakamları,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ştirmeBir 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
https://en.wikipedia.org/wiki/Kolmogorov_complexity
" 23"olarak ifade edilebilirdigit + * 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
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 oyunOldukç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
The Definitive Four Fours Answer Key
https://dwheeler.com/fourfours/
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
sqrtsembolünün içinde gizli çok fazla 2 var