Deje que sea un número entero positivo que consiste en dígitos decimales . Deje ser otro entero positivo.
A los efectos de este desafío, que llamamos un imitador de si existe al menos una lista de números enteros positivos tal que:
y se denominanimitadores recíprocossi es un imitador de y es un imitador de .
Ejemplo
y son imitadores recíprocos porque:
y:
El reto
Dados dos enteros positivos y , su tarea es imprimir o devolver un valor verdadero si y son copias recíprocas o un valor falso de lo contrario.
Aclaraciones y reglas.
- Puede tomar y en cualquier formato razonable y sin ambigüedades (por ejemplo, enteros, cadenas, listas de dígitos, ...)
- y pueden ser iguales. Si un número es una copia recíproca de sí mismo, pertenece aA007532.
- En lugar de valores de verdad / falsedad, puede devolver dos valores consistentes distintos .
- Para y , su código debe completarse en menos de un minuto . Si está tomando demasiado tiempo para valores más altos, debe ser capaz de resolverlos en teoría.
- Este es el código de golf .
Casos de prueba
Truthy:
1 1
12 33
22 64
8 512
23 737
89 89
222 592
526 853
946 961
7 2401
24 4224
3263 9734
86 79424
68995 59227
32028 695345
Falsy:
1 2
3 27
9 24
24 42
33 715
33 732
222 542
935 994
17 2401
8245 4153
code-golf
decision-problem
integer
Arnauld
fuente
fuente
17 2401 -> false
. Estoy casi tropezado con esto.Respuestas:
Brachylog , 19 bytes
Pruébalo en línea!
Salidas
true.
ofalse.
Explicación
fuente
2401
contenía uno0
que no funcionaba con la forma en que lo verifiqué, queI
era estrictamente positivo (porque lo asigné en ambosI
y en el dígito para guardar bytes)Casco , 17 bytes
Pruébalo en línea! Termina todos los casos de prueba por debajo de 1000 en aproximadamente 11 segundos.
Explicación
Por que funciona
fuente
d
toma el argumento implícito. Aclaré esto en la explicación. 2. Agregué un argumento para la corrección del programa.Python 2 , 102 bytes
Pruébalo en línea!
fuente
05AB1E ,
2622 bytesToma la entrada como una lista (es decir
[526,853]
).Pruébalo en línea o verifique la mayoría de los casos de prueba en el rango
[1,999]
.Similar a mi respuesta anterior a continuación, excepto que la
[1,n]
lista está codificada para[1,100]
y crea la lista cartesiana dos veces, una para cada asignación de entrada, que es el principal cuello de botella en términos de rendimiento.Antigua respuesta de 26 bytes que es mejor para el rendimiento:
En esta versión, cambié algunos bytes para mejorar mucho el rendimiento y poder ejecutarlo
[1,1000]
con facilidad. Casos de prueba que contienen números en el rango[1,9999]
se realizan en aproximadamente un segundo en TIO. Pruebe los casos en el rango[10000,99999]
en aproximadamente 10-15 segundos con TIO. Por encima de eso, se agota el tiempo de espera.Pruébelo en línea o verifique todos los casos de prueba con números en el rango
[1,9999]
.Explicación:
fuente
Haskell , 77 bytes
Pruébalo en línea!
fuente
Perl 6 ,
87 8469 bytes-15 bytes gracias a nwellnhof!
Pruébalo en línea!
Bloque de código anónimo que devuelve verdadero o falso.
Explicación:
fuente
JavaScript (Node.js) ,
1169289868377 bytesPruébalo en línea!
Espere entrada como
(A)(B)
.fuente
J , 56 bytes
Pruébalo en línea!
¡Sí, definición explícita anidada!
Cómo funciona
fuente
Python 2 ,
149147143139132118108107106105 bytesPruébalo en línea!
-4 bytes, gracias a Vedant Kandoi
fuente
>0
se puede quitar.not a
:a<1
.b==0
:b<1
b<0
no funcionaJ, 68 bytes
Pensé que J se desempeñaría bastante bien aquí, pero terminó siendo más difícil de lo que esperaba y me encantaría cualquier sugerencia para seguir jugando al golf ...
Pruébalo en línea!
NOTA: restamos 3 caracteres del recuento de TIO allí ya que
f=.
en la función principal no cuentasin golf
fuente