Eingang
Ganzzahlen a1, a2, a3, b1, b2, b3 jeweils im Bereich von 1 bis 20.
Ausgabe
True if a1^(a2^a3) > b1^(b2^b3) and False otherwise.
^ ist Potenzierung in dieser Frage.
Regeln
Das ist Code-Golf. Ihr Code muss innerhalb von 10 Sekunden korrekt terminiert sein, damit eine gültige Eingabe auf einem Standard-Desktop-PC möglich ist.
Sie können Truthy für True und Falsey für False ausgeben.
Sie können eine beliebige Eingabereihenfolge annehmen, solange sie in der Antwort angegeben ist und immer dieselbe.
Für diese Frage sollte Ihr Code immer korrekt sein. Das heißt, es sollte nicht an Gleitkommaungenauigkeiten scheitern. Aufgrund des begrenzten Eingangsbereichs sollte dies nicht zu schwer zu erreichen sein.
Testfälle
3^(4^5) > 5^(4^3)
1^(2^3) < 3^(2^1)
3^(6^5) < 5^(20^3)
20^(20^20) > 20^(20^19)
20^(20^20) == 20^(20^20)
2^2^20 > 2^20^2
2^3^12 == 8^3^11
1^20^20 == 1^1^1
1^1^1 == 1^20^20
Antworten:
Perl 6 ,
3129 Bytes-2 Bytes dank Grimy
Probieren Sie es online!
Ob Sie es glauben oder nicht, dies ist kein Esolang, auch wenn er hauptsächlich aus Sternchen besteht. Dies verwendet die Arnauld-Formel mit log10 anstelle von ln.
quelle
2^3^12 == 8^3^11
.R , 39 Bytes
Probieren Sie es online!
Liefert FALSE when
a > b
und TRUE ifb < a
quelle
f(2,2,20,2,20,2)
2^3^12 == 8^3^11
.1^20^20 == 1^1^1
und1^1^1 == 1^20^20
.05AB1E ,
119117 BytesPort of @Arnauld 's JavaScript und @digEmAll ' s R nähert sich (ich sah sie die gleiche Zeit schreiben um)
-2 Bytes dank @Emigna
+2 Bytes als Bug-Fix nach @Arnauld 's und @digEmAll ' s Antworten enthalten ein Fehler
-4 Bytes jetzt, da nach @LuisMendos Kommentaren eine andere Eingabereihenfolge zulässig ist
Input wie
[a1,b1]
,[a3,b3]
,[a2,b2]
als drei getrennte Eingänge.Probieren Sie es online aus oder überprüfen Sie alle Testfälle .
Erläuterung:
quelle
ć
, aber komplett vergessen zu benutzenš
(nicht sicher warum jetzt, wo ich es sehe, haha). Vielen Dank!Java (JDK) , 56 Byte
Probieren Sie es online!
Credits
quelle
2^3^12 == 8^3^11
.Wolfram Language (Mathematica) , 23 Byte
Probieren Sie es online!
quelle
##>0&@@(##^1&@@@#)&
es nur 19 Bytes und sogar noch umwerfender un-mathematica-artig als der obige Code. (Infput-Format{{a,b,c},{d,e,f}}
)J ,
119 BytesProbieren Sie es online!
Argumente als Listen angegeben.
>
Ist der linke größer?&(...)
Aber zuerst transformiere jedes Argument so:^.@^/
reduzieren Sie es von rechts nach links mit Exponential. Da die gewöhnliche Potenzierung den Fehler auch bei erweiterten Zahlen einschränkt, nehmen wir die Protokolle beider Seitenquelle
Sauber , 44 Bytes
Probieren Sie es online!
Verwendet eine Anpassung der Arnauldschen Formel.
quelle
2^3^12 == 8^3^11
.Python 3 , 68 Bytes
Probieren Sie es online!
Port von @Arnualds antwortet, aber die Basis für das Protokoll wurde geändert.
quelle
^
heißt**
in Python. Und wenn dies geändert wird, können Sie nicht alle Testfälle des OP ausführen.2^3^12 == 8^3^11
.05AB1E , 13 Bytes
Verwendet die Methode aus Arnauld's JS-Antwort
Probieren Sie es online!
quelle
b1=b2=b3=20
, ja, das hört nicht auf.Excel, 28 Bytes
Excel-Implementierung der gleichen Formel bereits verwendet.
quelle
JavaScript, 51 Bytes
Überraschenderweise zeigen die Testfälle keinen Gleitkommafehler. Ich weiß nicht, ob es jemals bei dieser Größe funktioniert.Dies vergleicht nur den Logarithmus der Zahlen.
Gleichheitstoleranz ist gleich
1e-8
.quelle
2^3^12 == 8^3^11
Testfall fehl . Tatsächlich ist Ihre Antwort der ursprünglichen Antwort von Arnauld sehr ähnlich (leider nicht korrigiert, sondern gelöscht), die die meisten derjenigen inspiriert hat, die sie nicht bestanden haben.l(h)
rechts verschoben , und vielleicht funktioniert es jetzt? Bearbeiten: Warten Sie, tut es nicht.0.01
.(5.820766091346741e-11,(8.0,3.0,11,2.0,3.0,12))
(mein Testfall), und das Niedrigste, das Sie einschließen müssen, ist(9.486076692724055e-4,(17.0,19.0,1,3.0,7.0,2))
(3^7^2 > 17^19^1
.) So etwas1e-8
sollte sicher in der Mitte sein und dieselbe Bytelänge haben.bc -l, 47 Bytes
Wenn die Eingabe von gelesen wird
STDIN
, eine Ganzzahl pro Zeile.bc
ist ziemlich schnell; Auf meinem Laptop funktioniert a = b = c = d = e = f = 1,000,000 in etwas mehr als einer Sekunde.quelle
C ++ (gcc) , 86 Bytes
Vielen Dank an @ ØrjanJohansen für den Hinweis auf einen Fehler und an @Ourous für die Behebung.
Probieren Sie es online!
quelle
log
zweimaliger Einnahme sollte lauteni[2]*log(i[1])+log(log(*i))
. ZB wird die aktuelle fehlschlagen2^2^20 > 4^2^18
.pow
Dann muss ich wohl die Methode anwenden.2^3^12 == 8^3^11
Problem, auf das ich andere hingewiesen habe.2^3^20 == 8^3^19
. Tatsächlich scheitert die Potenzmethode im Durchschnitt für weniger, wahrscheinlich, weil sie dazu neigt, genau mit Zweierpotenzen zu multiplizieren. Andere haben es geschafft, dass es funktioniert, indem sie es nur leicht verändert haben.Gelee , 8 Bytes
Probieren Sie es online!
Basierend auf Arnauld's JS Antwort . Erwartet als Eingabe
[a1, b1]
als linkes Argument und[[a2, b2], [a3, b3]]
als rechtes Argument.Jetzt wurde geändert, dass log auf die Basis 10 angewendet wird, die alle möglichen Eingaben im angegebenen Bereich soweit korrekt verarbeitet. Vielen Dank an Ørjan Johansen, der das ursprüngliche Problem gefunden hat!
quelle
2^3^12 == 8^3^11
.8*
statt8**
. @ ØrjanJohansen ist ja richtig, das2**(3**12) > 8**(3**11)
ist falsch, da sie gleich sind.TI-BASIC,
2731 BytesAns
Beispiele:
Erläuterung:
Hinweis: TI-BASIC ist eine Token-Sprache. Die Anzahl der Zeichen entspricht nicht der Anzahl der Bytes.
quelle
log(x) × y × z
eher alslog(x) × y ^ z
. Dies führt nicht unbedingt zur gleichen Reihenfolge wie die ursprüngliche Ungleichung.APL (NARS), Zeichen 36, Bytes 72
Hier unten würde die Funktion z in (abc) z (xyt) 1 zurückgeben, wenn a ^ (b ^ c)> x ^ (y ^ t) else 0 zurückgeben würde; Prüfung
{(abc) ← ⍵⋄a = 1: ¯1⋄ (⍟⍟a) + c × ⍟b} ist die Funktion p (a, b, c) = log (log (a)) + c * log (b ) = log (log (a ^ b ^ c)) und wenn aa = a ^ (b ^ c) mit a, b, c> 0 und a> 1 bb = x ^ (y ^ t) mit x, y, t> 0 und x> 1 als
Es gibt ein Problem mit der Funktion p: Wenn a 1 ist, existiert das Protokoll log 1 nicht, so dass ich es mit der Zahl -1 darstelle; Wenn a = 2, ist log log a eine negative Zahl, aber> -1.
PS. Gesehen die Funktion in seiner größeren Menge, in der definiert ist
Der Bereich für a, b, c in 1..20 ist zu gering ... Wenn man sieht, wenn es mit der Log-Basis 10 überläuft, könnte der Bereich für a, b, c für 64-Bit 1..10000000 oder größer sein Schwimmertyp.
quelle