Fyra fyror är ett matematiskt pussel för att hitta det enklaste matematiska uttrycket för varje heltal från 0 till något maximum, med endast vanliga matematiska symboler och fyror (inga andra siffror är tillåtna). De flesta versioner av "fyra 4:or" kräver att varje uttryck innehåller exakt fyra 4:or, men vissa varianter kräver att varje uttryck har ett minsta antal 4:or.
Det finns många varianter av detta pussel. Deras huvudsakliga skillnad är vilka matematiska operationer som är tillåtna. Nästan alla varianter tillåter åtminstone addition ("+"), subtraktion ("−"), multiplikation ("×"), division ("÷") och parenteser, såväl som sammanlänkning (t.ex. att skriva "44" är tillåtet ) . De flesta tillåter också faktoriell ("!"), exponentiering (t.ex. "44 4 "), decimalpunkt (".") och kvadratrot ("√"), även om kvadratroten ibland specifikt exkluderas på grund av att den är antydde "2" för kvadratroten. Andra operationer är tillåtna i vissa varianter, inklusive subfaktoriell ("!" före ett tal: !4 är lika med 9), primär ("#" efter ett tal, till exempel, 4# är lika med 6), "()" eller "stång över" (sekvens oändligt upprepade siffror), en rot av vilken grad som helst, gammafunktioner (Γ (), där Γ (x) \u003d (x - 1)!) Och procent ("%"). Således är 4/4% = 100 och Γ (4) = 6. Linjen har följande betydelse:
Som regel är det inte tillåtet att använda logaritmer, eftersom det finns ett trivialt sätt att uttrycka valfritt tal när du använder det. Paul Burke, som citerar Ben Rudyak-Gould, beskrev användningen av naturliga logaritmer (ln()) för att representera alla naturliga tal n :
Ytterligare alternativ är möjliga (vanligtvis med ett annat namn): med ersättning av en uppsättning nummer ("4, 4, 4, 4") med ett annat, säg, födelseåret för någon. Om du till exempel använder "1975" skulle bara en 1, en 9, en 7 och en 5:a behöva användas i uttrycket för varje nummer.
Här är en lösningsuppsättning av fyra fyror för siffror från 0 till 20 med hjälp av exempelregler. Några alternativa lösningar listas också här, även om det faktiskt finns många fler korrekta lösningar.
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) ÷√4Det finns också många andra sätt att presentera.
Var uppmärksam på notationen av några decimalbråk. Så "0,4" skrivs vanligtvis som ".4". Detta beror på att "0" är ett tal, och endast siffrorna "4" kan användas i detta pussel.
Ett givet nummer kommer vanligtvis att ha flera möjliga lösningar, och varje lösning som uppfyller reglerna är acceptabel. Vissa varianter föredrar det "minsta" antalet operationer, eller föredrar vissa operationer framför andra. Andra föredrar helt enkelt "intressanta" lösningar, det vill säga ett överraskande sätt att nå målet. Det största talet som kan skrivas med endast fyra 4:or, fyra räkneoperationer och potenser är 4 4 4 4 , vilket är ungefär lika med 10 10 154 .
Vissa siffror, som 113 och 123, är särskilt svåra att lösa inom typiska regler. För 113 föreslår Wheeler Γ (Γ (4)) - (4 + 4!) / 4. För 123 föreslår Wheeler uttrycket:
Användningen av en procentsats ("%") tillåter lösningar för många fler siffror, som 113 = (√4 + (√4 + 4!)%) ÷ (√4)%. Därför är det inte tillåtet i alla alternativ.
Pusslet beskrivs för första gången i tryck i Mathematical Essays and Amusements ( W. W. Rose Ball , 1892). I den här boken beskrivs "fyra fyror" som "traditionell underhållning".
Detta problem och dess generaliseringar (till exempel "fem femmor" och "sex sexor" som visas nedan) kan lösas med en enkel algoritm. Lösningen är att bygga en hashtabell som mappar siffror till strängar. I dessa tabeller kan nyckeltal representeras som några giltiga kombinationer av operatorer och symboler d , som t.ex. betecknar fyra och värden, som är strängar som innehåller faktiska formler. Det finns en tabell för varje nummer n förekomster av d. Till exempel, när d = 4, kommer hashtabellerna för två förekomster av d att innehålla par så här: nyckel-värde 8 och sträng 4 + 4 , och för tre förekomster, till exempel, par så här: nyckel-värde 2 sträng ( 4 +4) / 4 (rader i fet stil). Problemet reduceras sedan till att rekursivt beräkna dessa hashtabeller med steg om n, med början vid n = 1 och fortsätter upp till till exempel n = 4. Tabellerna för n = 1 och n = 2 är triviala eftersom de innehåller primitiva element . Till exempel, för n = 1 får vi:
T[4] := "4"; T[4/10] := ".4"; T[4/9] := ".(4)";och för n = 2:
T[44] := "44";.Det finns för närvarande två sätt på vilka nya poster kan genereras som kombinationer av befintliga, med hjälp av binära operatorer, eller genom att tillämpa faktoriell eller kvadratrot (som inte använder ytterligare instanser av d). I det första fallet beaktas och itereras alla par av underuttryck som använder totalt n d fall . Till exempel, när n=4 skulle vi vilja testa (a, b) med a som innehåller en instans av d och tre b , eller a som innehåller två instanser av d och b med 2 d . Vi skulle då kunna skriva in a+b, ab, ba, a*b, a/b, b/a) i hashtabellen, inklusive parenteser, för n=4 . Här innehåller mängderna A och B a respektive b , beräknade rekursivt, baserat på n=1 och n=2 . Memoisering används för att säkerställa att varje hashtabellvärde endast beräknas en gång.
I det andra fallet (faktorer och rötter) går bearbetningen genom en hjälpfunktion som anropas varje gång värdet på V skrivs. Den här funktionen beräknar kapslade fakulteter och V -rötter upp till ett visst maximalt djup begränsat av siffror.
Det sista steget i algoritmen är att iterera nyckeln från tabellen för det erforderliga värdet på n och att erhålla och sortera de nycklar som är heltal. Denna algoritm användes för att beräkna de fem femmorna och sex sexorna nedan. Varje gång valdes en mer kompakt formel (i termer av antalet tecken i motsvarande värden) när nyckeln dök upp mer än en gång.
I tabellen nedan representerar posten .6… värdet 6/9 eller 2/3 (av det periodiska bråket 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)