Entrada
Enteros a1, a2, a3, b1, b2, b3 cada uno en el rango de 1 a 20.
Salida
True if a1^(a2^a3) > b1^(b2^b3) and False otherwise.
^ es exponenciación en esta pregunta.
Reglas
Este es el código de golf. Su código debe terminar correctamente dentro de 10 segundos para cualquier entrada válida en una PC de escritorio estándar.
Puede generar cualquier cosa Verdad para Verdadero y cualquier cosa Falsey para Falso.
Puede asumir cualquier orden de entrada que desee siempre que esté especificado en la respuesta y siempre sea el mismo.
Para esta pregunta, su código siempre debe ser correcto. Es decir, no debe fallar debido a imprecisiones de coma flotante. Debido al rango limitado de la entrada, esto no debería ser demasiado difícil de lograr.
Casos de prueba
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
Respuestas:
Perl 6 ,
3129 bytes-2 bytes gracias a Grimy
Pruébalo en línea!
Lo creas o no, este no es un esolang, incluso si está compuesto principalmente de asteriscos. Utiliza la fórmula de Arnauld , con log10 en lugar de ln.
fuente
2^3^12 == 8^3^11
.R , 39 bytes
Pruébalo en línea!
Devuelve FALSO cuando
a > b
y VERDADERO sib < a
fuente
f(2,2,20,2,20,2)
2^3^12 == 8^3^11
.1^20^20 == 1^1^1
y1^1^1 == 1^20^20
.05AB1E ,
119117 bytesPuerto de los enfoques de JavaScript de @Arnauld y R de @digEmAll (los vi publicar más o menos al mismo tiempo)
-2 bytes gracias a @Emigna
+2 bytes como corrección de errores después de que las respuestas de @Arnauld y @digEmAll contuvieran un error
-4 bytes ahora que se permite un orden de entrada diferente después de los comentarios de @LuisMendo
De entrada como
[a1,b1]
,[a3,b3]
,[a2,b2]
como tres separó entradas.Pruébelo en línea o verifique todos los casos de prueba .
Explicación:
fuente
ć
, pero olvidé por completo el usoš
(no estoy seguro de por qué ahora que lo veo, jaja). ¡Gracias!Java (JDK) , 56 bytes
Pruébalo en línea!
Créditos
fuente
2^3^12 == 8^3^11
.Wolfram Language (Mathematica) , 23 bytes
Pruébalo en línea!
fuente
##>0&@@(##^1&@@@#)&
solo tiene 19 bytes y es aún más alucinante que Matcode que el código anterior. (formato de entrada{{a,b,c},{d,e,f}}
)J ,
119 bytesPruébalo en línea!
Argumentos dados como listas.
>
es el izquierdo más grande?&(...)
pero primero, transforma cada argumento así:^.@^/
reducirlo de derecha a izquierda con exponencia. Pero debido a que la exponenciación ordinaria limitará el error incluso para números extendidos, tomamos los registros de ambos ladosfuente
Limpio , 44 bytes
Pruébalo en línea!
Utiliza una adaptación de la fórmula de Arnauld.
fuente
2^3^12 == 8^3^11
.Python 3 , 68 bytes
Pruébalo en línea!
Puerto de respuesta @Arnualds, pero con la base para el registro cambiado.
fuente
^
se llama**
en Python. Y con eso cambiado, no podrá ejecutar todos los casos de prueba del OP.2^3^12 == 8^3^11
.05AB1E , 13 bytes
Utiliza el método de la respuesta JS de Arnauld
Pruébalo en línea!
fuente
b1=b2=b3=20
, sí, eso no termina.Excel, 28 bytes
Implementación de Excel de la misma fórmula ya utilizada.
fuente
JavaScript, 51 bytes
Sorprendentemente, los casos de prueba no muestran ningún error de punto flotante. No sé si alguna vez lo hace a este tamaño.Esto solo compara el logaritmo de los números.
La tolerancia a la igualdad es igual a
1e-8
.fuente
2^3^12 == 8^3^11
caso de prueba. De hecho, su respuesta es muy similar a la respuesta original de Arnauld (tristemente eliminada en lugar de reparada) que inspiró a la mayoría de los que fallaron.l(h)
a la derecha, ¿y tal vez funciona ahora? Editar: Espera, no lo hace.0.01
.(5.820766091346741e-11,(8.0,3.0,11,2.0,3.0,12))
(mi caso de prueba), y lo más bajo que debe incluir es(9.486076692724055e-4,(17.0,19.0,1,3.0,7.0,2))
(3^7^2 > 17^19^1
.) Por lo tanto, algo como1e-8
debería estar de manera segura en el medio y la misma longitud de bytes.bc -l, 47 bytes
con la entrada leída
STDIN
, un número entero por línea.bc
es bastante rápido maneja a = b = c = d = e = f = 1,000,000 en poco más de un segundo en mi computadora portátil.fuente
C ++ (gcc) , 86 bytes
Gracias a @ ØrjanJohansen por señalar una falla en esto y a @Ourous por darnos una solución.
Pruébalo en línea!
Toma la entrada como una matriz de 6 enteros. Devuelve 1 siunasido> dmiF , 0 de lo contrario.
fuente
log
dos veces debe seri[2]*log(i[1])+log(log(*i))
. Por ejemplo, el actual fallará2^2^20 > 4^2^18
.pow
método entonces.2^3^12 == 8^3^11
problema que les he señalado a otros.2^3^20 == 8^3^19
. De hecho, en promedio, el método de potencia falla por menos, probablemente porque tiende a multiplicarse por potencias de dos exactamente. Otros han logrado hacer que funcione simplemente ajustándolo ligeramente.Jalea , 8 bytes
Pruébalo en línea!
Basado en la respuesta JS de Arnauld . Espera como entrada
[a1, b1]
como argumento izquierdo y[[a2, b2], [a3, b3]]
como argumento derecho.Ahora se ha cambiado para utilizar el registro en la base 10, que en la medida de lo posible maneja correctamente todas las entradas posibles en el rango especificado. ¡Gracias a Ørjan Johansen por encontrar el problema original!
fuente
2^3^12 == 8^3^11
.8*
lugar de8**
. @ ØrjanJohansen tiene razón,2**(3**12) > 8**(3**11)
es falsey, ya que son iguales.TI-BASIC,
2731 bytesLa entrada es una lista de longitud6 6 en
Ans
.Salidas verdaderas si el primer gran número es mayor que el segundo gran número. Salidas falsas de lo contrario.
Ejemplos:
Explicación:
Nota: TI-BASIC es un lenguaje tokenizado. El recuento de caracteres no es igual al recuento de bytes.
fuente
log(x) × y × z
más quelog(x) × y ^ z
. Esto no conducirá necesariamente al mismo orden que la desigualdad original.APL (NARS), caracteres 36, bytes 72
A continuación, la función z en (abc) z (xyt) devolvería 1 si a ^ (b ^ c)> x ^ (y ^ t) sino devolvería 0; prueba
{(abc) ← ⍵⋄a = 1: ¯1⋄ (⍟⍟a) + c × ⍟b} es la función p (a, b, c) = log (log (a)) + c * log (b ) = log (log (a ^ b ^ c)) y si aa = a ^ (b ^ c) con a, b, c> 0 y a> 1 bb = x ^ (y ^ t) con x, y, t> 0 y x> 1 que
Hay un problema con la función p: cuando a es 1, log log 1 no existe, así que elijo representarlo con el número -1; cuando a = 2, entonces log log a es un número negativo pero> -1.
PD. Visto la función en su conjunto más grande en el que se define
parece que el rango para a, b, c en 1..20 es muy poco ... Si uno ve cuando se desborda con la base de registro 10, el rango para a, b, c podría ser 1..10000000 o mayor para un 64 bit tipo de flotador
fuente