Four Fours on matemaattinen pulmapeli , jolla löydetään yksinkertaisin matemaattinen lauseke jokaiselle kokonaisluvulle 0:sta johonkin maksimiarvoon käyttämällä vain yleisiä matemaattisia symboleja ja neliöitä (muita numeroita ei sallita). Useimmat "neljän 4:n" versiot edellyttävät, että jokainen lauseke sisältää täsmälleen neljä neljää, mutta jotkin muunnelmat edellyttävät, että jokaisessa lausekkeessa on oltava vähimmäismäärä 4s.
Tästä palapelistä on monia muunnelmia. Niiden tärkein ero on se, mitkä matemaattiset toiminnot ovat sallittuja. Lähes kaikki muunnelmat sallivat ainakin yhteen- ("+"), vähennyslasku- ("−"), kerto- ("×"), jakolasku ("÷") ja hakasulkeet sekä ketjuttaminen (esim. "44" on sallittu ) . Useimmat sallivat myös kertoimen ("!"), eksponentioarvon (esim. "44 4 "), desimaalipisteen (".") ja neliöjuuren ("√"), vaikka joskus neliöjuuri jätetään nimenomaisesti pois, koska se on tarkoittaa "2" neliöjuurelle. Muut toiminnot ovat sallittuja joissakin muunnelmissa, mukaan lukien osatekijä ("!" ennen numeroa: !4 on yhtä suuri kuin 9), primoriaali ("#" luvun jälkeen, esimerkiksi 4# on yhtä suuri kuin 6), "()" tai "bar over" (sekvenssi äärettömästi toistuvia numeroita), minkä tahansa asteen juuri, gammafunktiot (Γ (), missä Γ (x) \u003d (x - 1)!) Ja prosenttiosuus ("%"). Siten 4/4 % = 100 ja Γ (4) = 6. Viivalla on seuraava merkitys:
Yleensä logaritmien käyttö ei ole sallittua, koska sitä käytettäessä on olemassa triviaali tapa ilmaista mikä tahansa luku. Paul Burke, lainaten Ben Rudyak-Gouldia, kuvaili luonnollisten logaritmien (ln()) käyttöä edustamaan mitä tahansa luonnollista lukua n :
Lisävaihtoehdot ovat mahdollisia (yleensä eri nimellä): korvaamalla numerosarja ("4, 4, 4, 4") toisella, esimerkiksi jonkun syntymävuodella. Esimerkiksi "1975" vaatisi vain yhden 1:n, yhden 9:n, yhden 7:n ja yhden 5:n käytön kunkin luvun lausekkeessa.
Tässä on neljän neljän ratkaisujoukko numeroille 0–20 käyttäen esimerkkisääntöjä. Tässä on myös listattu joitakin vaihtoehtoisia ratkaisuja, vaikka oikeita ratkaisuja on itse asiassa paljon enemmän.
0 = 4 ÷ 4 × 4 - 4 = 44 -44 1 = 4 ÷ 4 + 4 − 4 = 44 ÷ 44 2 = 4 −(4 + 4)÷ 4 = (44 + 4) ÷ 4! 3 = (4 × 4 - 4) ÷ 4 = (4 + 4 + 4) ÷ 4 4 = 4 + 4 ×(4 − 4) = −44 + 4! +4! 5 = (4 × 4 + 4)÷ 4 = (44 − 4!)÷ 4 6 = 4 +(4 + 4)÷ 4 = 4,4 + 4 ×,4 7 = 4 + 4 - 4 ÷ 4 = 44 ÷ 4 - 4 8 = 4 ÷ 4 × 4 + 4 = 4,4 −,4 + 4 9 = 4 ÷ 4 + 4 + 4 = 44 ÷ 4 −√4 10 = 4 + 4 + 4 −√4 = (44 − 4) ÷ 4 11 = 4 ÷ 4 + 4 ÷.4 = 44 ÷√4 ÷√4 12 = 4 × (4 - 4 ÷ 4) = (44 + 4) ÷ 4 13 = (4 −.4)÷,4 + 4 = 44 ÷ 4 +√4 14 = 4 ×(4 −.4)−.4 = 4 + 4 + 4 +√4 15 = 4 × 4 - 4 ÷ 4 = 44 ÷ 4 + 4 16 = 4 × 4 + 4 - 4 = (44 - 4) ×.4 17 = 4 × 4 + 4 ÷ 4 = (44 + 4!) ÷ 4 18 = 4 × 4 + 4 −√4 = (44 ÷√4) − 4 19 = 4!− 4 −(4 ÷ 4) = (4 + 4 −.4) ÷,4 20 = 4 ×(4 + 4 ÷ 4) = (44 − 4) ÷√4On myös monia muita esittelytapoja.
Kiinnitä huomiota joidenkin desimaalilukujen merkintään. Joten "0.4" kirjoitetaan yleensä nimellä ".4". Tämä johtuu siitä, että "0" on numero, ja vain numeroita "4" voidaan käyttää tässä pulmapelissä.
Tietyllä numerolla on yleensä useita mahdollisia ratkaisuja, ja mikä tahansa ratkaisu, joka täyttää säännöt, on hyväksyttävä. Jotkut versiot suosivat "pienintä" toimintojen määrää tai mieluummin joitain toimintoja muihin verrattuna. Toiset pitävät yksinkertaisesti "mielenkiintoisista" ratkaisuista, toisin sanoen yllättävästä tapaa saavuttaa tavoite. Suurin vain neljällä 4:llä, neljällä aritmeettisella operaatiolla ja potenssilla kirjoitettava luku on 4 4 4 4 , joka on suunnilleen yhtä suuri kuin 10 10 154 .
Joitakin numeroita, kuten 113 ja 123, on erityisen vaikea ratkaista tyypillisten sääntöjen puitteissa. 113:lle Wheeler ehdottaa Γ (Γ (4)) - (4 + 4!) / 4. 123:lle Wheeler ehdottaa lauseketta:
Prosentin ("%") käyttö mahdollistaa ratkaisut useammille lukuille, kuten 113 = (√4 + (√4 + 4!)%) ÷ (√4)%. Siksi se ei ole sallittu kaikissa vaihtoehdoissa.
Palapeli on kuvattu ensimmäistä kertaa painetussa julkaisussa Mathematical Essays and Amusements ( W. W. Rose Ball , 1892). Tässä kirjassa "neljästä" kuvataan "perinteiseksi viihteeksi".
Tämä ongelma ja sen yleistykset (esimerkiksi "viisi viisi" ja "kuusi kuusi" alla esitetyllä tavalla) voidaan ratkaista yksinkertaisella algoritmilla. Ratkaisu on rakentaa hash-taulukko , joka yhdistää numerot merkkijonoihin. Näissä taulukoissa avainnumerot voidaan esittää kelvollisina yhdistelminä operaattorit ja symbolit d , jotka merkitsevät esimerkiksi neljää, ja arvot, jotka ovat merkkijonoja, jotka sisältävät varsinaisia kaavoja. Jokaiselle luvun n esiintymiselle on yksi taulukko. Esimerkiksi kun d = 4, tiivistetaulukot kahdelle d:n esiintymiselle sisältävät seuraavanlaisia pareja: avainarvo 8 ja merkkijono 4 + 4 , ja kolmelle esiintymiselle esimerkiksi seuraavat parit: avainarvo 2 merkkijono ( 4 +4) / 4 (rivit lihavoitu). Ongelma rajoittuu sitten näiden hash-taulukoiden rekursiiviseen laskemiseen n:n lisäyksillä alkaen n = 1:stä ja jatkuen esimerkiksi n = 4:ään saakka. Taulukot n = 1 ja n = 2 ovat triviaaleja, koska ne sisältävät primitiivisiä elementtejä . Esimerkiksi n = 1 saamme:
T[4] := "4"; T[4/10] := ".4"; T[4/9] := ".(4)";ja n = 2:
T[44] := "44";.Tällä hetkellä on kaksi tapaa, joilla uusia tietueita voidaan luoda yhdistelminä olemassa olevista tietueista käyttämällä binäärioperaattoreita tai käyttämällä tekijä- tai neliöjuuria (jotka eivät käytä d:n lisäesiintymiä). Ensimmäisessä tapauksessa kaikki osalausekkeiden parit, jotka käyttävät yhteensä n d tapausta, otetaan huomioon ja iteroidaan . Esimerkiksi kun n = 4 , haluaisimme testata (a, b) a :lla , joka sisältää yhden esiintymän d :stä ja kolmesta b , tai a :lla, joka sisältää kaksi esiintymää d :stä ja b :stä 2 d :llä . Voisimme sitten syöttää a+b, ab, ba, a*b, a/b, b/a) hash-taulukkoon sulkeet mukaan lukien, kun n=4 . Tässä joukot A ja B sisältävät vastaavasti a :n ja b :n , jotka lasketaan rekursiivisesti perustuen n=1 ja n=2 . Memoisointia käytetään varmistamaan, että kukin hash-taulukon arvo lasketaan vain kerran.
Toisessa tapauksessa (tekijät ja juuret) prosessointi kulkee apufunktion kautta, jota kutsutaan aina, kun V :n arvo kirjoitetaan. Tämä funktio laskee sisäkkäiset tekijät ja V -juuret tiettyyn enimmäissyvyyteen asti, joka on rajoitettu numeroilla.
Algoritmin viimeinen vaihe on iteroida avain taulukosta vaaditulle arvolle n ja saada ja lajitella ne avaimet, jotka ovat kokonaislukuja. Tätä algoritmia käytettiin alla olevien viiden viiden ja kuuden kuuden esimerkin laskemiseen. Joka kerta valittiin kompaktimpi kaava (vastaavien arvojen merkkien lukumäärän suhteen), kun avain esiintyi useammin kuin kerran.
Alla olevassa taulukossa merkintä .6… edustaa arvoa 6/9 tai 2/3 (jaksollisesta murtoluvusta 6).
241 = ((.6+((6+6)*(6+6)))/.6) 242 = ((6*(6+(6*6)))-(6/.6)) 243 = (6+((6*(.6*66))-.6)) 244 = (.6...*(6+(6*(66-6)))) 245 = (((6)!+((6)!+66))/6)-6) 246 = (66+(6*((6*6)-6))) 247 = (66+((6+((6)!/.6...))/6)) 248 = (6*(6+(6*(6-(.6.../6))))) 249 = (.6+(6*(6+((6*6)-.6)))) 250 = (((6*(6*6))-66)/.6) 251 = ((6*(6+(6*6)))-(6/6)) 252 = (66+(66+(6)!/6))) 253 = ((6/6)+(6*(6+(6*6))) 254 = ((.6...*((6*66)-6))-6) 255 = ((((6*6)+66)/.6)/.6...) 256 = (6*(6*(6-(6/(.6-6))))) 257 = (6+(((6)!+((6)!+66))/6)) 258 = ((6)!-(66+(6*66))) 259 = ((((6*6)+((6)!/6))-.6)/.6) 260 = ((66+((6)!/.6)/6))-6)