Contribution
Entiers a1, a2, a3, b1, b2, b3 chacun compris entre 1 et 20.
Sortie
True if a1^(a2^a3) > b1^(b2^b3) and False otherwise.
^ est l'exponentiation dans cette question.
Règles
C'est du code-golf. Votre code doit se terminer correctement dans les 10 secondes pour toute entrée valide sur un ordinateur de bureau standard.
Vous pouvez générer n'importe quoi Truthy for True et n'importe quoi Falsey for False.
Vous pouvez assumer n'importe quel ordre de saisie que vous aimez tant qu'il est spécifié dans la réponse et toujours le même.
Pour cette question, votre code doit toujours être correct. Autrement dit, il ne devrait pas échouer en raison d'inexactitudes en virgule flottante. En raison de la plage limitée de l'entrée, cela ne devrait pas être trop difficile à réaliser.
Cas de test
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
Réponses:
Perl 6 ,
3129 octets-2 octets grâce à Grimy
Essayez-le en ligne!
Croyez-le ou non, ce n'est pas un esolang, même s'il est composé principalement d'astérisques. Cela utilise la formule d'Arnauld , avec log10 au lieu de ln.
la source
2^3^12 == 8^3^11
.R , 39 octets
Essayez-le en ligne!
Retourne FALSE quand
a > b
et TRUE sib < a
la source
f(2,2,20,2,20,2)
2^3^12 == 8^3^11
.1^20^20 == 1^1^1
et1^1^1 == 1^20^20
.05AB1E ,
119117 octetsPort de @Arnauld 's JavaScript et @digEmAll de R approche (je les ai vus poste dans le même temps)
-2 octets grâce à @Emigna
+2 octets comme bug-fix après @Arnauld ' s et @digEmAll réponses de contenues une erreur de
-4 octets maintenant qu'un ordre d'entrée différent est autorisé après les commentaires de @LuisMendo
Entrée en
[a1,b1]
,[a3,b3]
,[a2,b2]
en tant que trois entrées séparées.Essayez-le en ligne ou vérifiez tous les cas de test .
Explication:
la source
ć
, mais j'ai complètement oublié d'utiliserš
(je ne sais pas pourquoi maintenant que je le vois, haha). Merci!Java (JDK) , 56 octets
Essayez-le en ligne!
Crédits
la source
2^3^12 == 8^3^11
.Wolfram Language (Mathematica) , 23 octets
Essayez-le en ligne!
la source
##>0&@@(##^1&@@@#)&
ne fait que 19 octets et est encore plus déroutant comme Mathematica que le code ci-dessus. (format d'entrée{{a,b,c},{d,e,f}}
)J ,
119 octetsEssayez-le en ligne!
Arguments donnés sous forme de listes.
>
la gauche est-elle plus grosse?&(...)
mais d'abord, transformez ainsi chaque argument:^.@^/
réduisez-la de droite à gauche avec exponention. Mais parce que l'exponentiation ordinaire limitera l'erreur même pour les nombres étendus, nous prenons les journaux des deux côtésla source
Nettoyer , 44 octets
Essayez-le en ligne!
Utilise une adaptation de la formule d'Arnauld.
la source
2^3^12 == 8^3^11
.Python 3 , 68 octets
Essayez-le en ligne!
Le port de @Arnualds répond, mais la base du journal a changé.
la source
^
est appelé**
en Python. Et avec cela changé, vous ne pourrez pas exécuter tous les cas de test de l'OP.2^3^12 == 8^3^11
.05AB1E , 13 octets
Utilise la méthode de la réponse JS d' Arnauld
Essayez-le en ligne!
la source
b1=b2=b3=20
, ouais ça ne s'arrête pas.Excel, 28 octets
Implémentation Excel de la même formule déjà utilisée.
la source
JavaScript, 51 octets
Étonnamment, les cas de test ne montrent aucune erreur en virgule flottante. Je ne sais pas si c'est le cas à cette taille.Cela compare simplement le logarithme des nombres.
La tolérance à l'égalité est égale à
1e-8
.la source
2^3^12 == 8^3^11
cas de test. En fait, votre réponse est très similaire à la réponse originale d'Arnauld (malheureusement supprimée plutôt que corrigée) qui a inspiré la plupart de ceux qui l'ont ratée.l(h)
vers la droite, et peut-être que cela fonctionne maintenant? Edit: Attendez, ce n'est pas le cas.0.01
.(5.820766091346741e-11,(8.0,3.0,11,2.0,3.0,12))
(mon cas de test), et le plus bas que vous devez inclure est(9.486076692724055e-4,(17.0,19.0,1,3.0,7.0,2))
(3^7^2 > 17^19^1
.) Donc quelque chose comme1e-8
devrait être en toute sécurité au milieu et la même longueur d'octet.bc -l, 47 octets
avec l'entrée lue
STDIN
, un entier par ligne.bc
est assez rapide; il gère a = b = c = d = e = f = 1 000 000 en un peu plus d'une seconde sur mon ordinateur portable.la source
C ++ (gcc) , 86 octets
Merci à @ ØrjanJohansen d'avoir signalé un défaut et à @Ourous d'avoir corrigé.
Essayez-le en ligne!
la source
log
deux fois devrait êtrei[2]*log(i[1])+log(log(*i))
. Par exemple, l'actuel échouera2^2^20 > 4^2^18
.pow
méthode.2^3^12 == 8^3^11
problème que j'ai signalé aux autres.2^3^20 == 8^3^19
. En fait, en moyenne, la méthode de puissance échoue pour moins, probablement parce qu'elle a tendance à se multiplier exactement par deux. D'autres ont réussi à le faire fonctionner en le modifiant légèrement.Gelée , 8 octets
Essayez-le en ligne!
Basé sur la réponse JS d'Arnauld . Attend en entrée
[a1, b1]
comme argument de gauche et[[a2, b2], [a3, b3]]
comme argument de droite.Maintenant modifié pour utiliser le journal de la base 10 qui, dans la mesure du possible, gère correctement toutes les entrées possibles dans la plage spécifiée. Merci à Ørjan Johansen d'avoir trouvé le problème d'origine!
la source
2^3^12 == 8^3^11
.8*
au lieu de8**
. @ ØrjanJohansen a en effet raison c'est2**(3**12) > 8**(3**11)
falsey, puisqu'ils sont égaux.TI-BASIC,
2731 octetsAns
Exemples:
Explication:
Remarque: TI-BASIC est un langage à jetons. Le nombre de caractères n'est pas égal au nombre d'octets.
la source
log(x) × y × z
plutôt l' êtrelog(x) × y ^ z
. Cela ne conduira pas nécessairement au même ordre que l'inégalité d'origine.APL (NARS), caractères 36, octets 72
Ci-dessous, la fonction z dans (abc) z (xyt) retournerait 1 si a ^ (b ^ c)> x ^ (y ^ t) sinon retournerait 0; tester
{(abc) ← ⍵⋄a = 1: ¯1⋄ (⍟⍟a) + c × ⍟b} est la fonction p (a, b, c) = log (log (a)) + c * log (b ) = log (log (a ^ b ^ c)) et si aa = a ^ (b ^ c) avec a, b, c> 0 et a> 1 bb = x ^ (y ^ t) avec x, y, t> 0 et x> 1 que
Il y a un problème avec la fonction p: quand a est 1, le journal de log 1 n'existe pas, je choisis donc de représenter cela avec le nombre -1; quand a = 2 donc log log a est un nombre négatif mais> -1.
PS. Vu la fonction dans son ensemble plus grand dans lequel est défini
apparaît la plage pour a, b, c dans 1..20 est trop peu ... Si on voit quand il déborde avec log base 10, la plage pour a, b, c pourrait être 1..10000000 ou plus grande pour un 64 bits type flotteur.
la source