En esta variante del rompecabezas de Cuatro patas, debe usar hasta x
x's
(y ningún otro número) y un conjunto definido de operaciones para llegar a cada número del 0 al 100. Si x = 4
puede usar hasta cuatro 4s
y esta pregunta se convierte en los cuatro cuatro clásicos. rompecabezas (excepto que puede usar hasta cuatro 4s en lugar de tener que usar exactamente cuatro de ellos). Asumimos 1 < x <= 9
.
En esta versión, solo se permiten los siguientes operadores:
- Suma (
+
), Resta (-
), Multiplicación (*
), División (/
). Tenga en cuenta que esta es una división real, por lo que5/2 = 2.5
. - Exponenciación (por ejemplo, 4 ^ 4) ya que esto no implicaría símbolos adicionales si se escribe normalmente a mano.
- Puedes hacer nuevos enteros concatenando
xs
. Por ejemplo, puedes hacer los enteros4, 44, 444, 4444
.
También puede usar paréntesis para agrupar números simplemente para controlar el orden de evaluación de los operadores. Por ejemplo, no puede combinar paréntesis con concatenación como en (4/4)(4/4) = (1)(1) = 11
.
No se pueden usar otros símbolos y se aplica el orden estándar de operaciones.
Su programa debería generar, dada una x
dentro del rango definido y una solución n
intermedia 0
e 100
inclusiva, para esa entrada si existe. De lo contrario, su código debe generar algo para indicar que no existe tal solución.
Debe poder ejecutar su envío hasta su finalización en su máquina para cualquier valor de entrada de x
y n
en el rango permitido. Este es el código de golf, por lo que gana la solución más corta.
Esta vieja pregunta relacionada utiliza más operadores (y solo 4) y, por lo tanto, todos los números del 0 al 100 son solucionables, lo que no será cierto para este desafío.
Entrada y salida
Su código toma dos enteros x
y n
como entrada y debe generar una solución (o una indicación de que no hay solución) en cualquier formato legible por humanos que considere conveniente. La entrada 4 6
significaría "Usando hasta cuatro 4s, haga el número 6" por ejemplo. Entonces, si la entrada es 4 6
la salida podría ser (4+4)/4+4
.
Respuestas:
Python 3 , 265 bytes
Pruébalo en línea!
Funciona para todos los números en la referencia vinculada por Engineer Toast.
Se ejecuta hasta
x=8
el tio,x=9
toma un par de minutos en mi máquina.La función
g
devuelve un conjunto de todas las combinaciones con un máximox
dex
's.f
luego los recorre y devuelve el primero que evalúa el númeron
.El número de valores posibles que encontré para cada uno
x
son:Todos los números anteriores se pueden generar a partir de
(a+b)
,(a-b)
,(a+b)
,a*b
,a/b
,(a/b)
, ya^b
.a+b
ya-b
no le des más números.a^b
también se usa solo una vez, ya que de lo contrario se crean grandes cantidades (esto también se verifica en el documento de referencia anterior)Una versión alternativa que cortocircuita tan pronto como encuentra una solución (no tan golfizada):
Esto es mucho más rápido ya que
x=7..9
se pueden crear todos los números.Python 3 ,
338289 bytesPruébalo en línea!
fuente
(4/4**(4-4))
para4
), pero resulta que ese no es el caso.exit(e)
es más corto quereturn e