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 = 4puede usar hasta cuatro 4sy 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 xdentro del rango definido y una solución nintermedia 0e 100inclusiva, 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 xy nen 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 xy ncomo 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 6significaría "Usando hasta cuatro 4s, haga el número 6" por ejemplo. Entonces, si la entrada es 4 6la 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=8el tio,x=9toma un par de minutos en mi máquina.La función
gdevuelve un conjunto de todas las combinaciones con un máximoxdex's.fluego los recorre y devuelve el primero que evalúa el númeron.El número de valores posibles que encontré para cada uno
xson: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+bya-bno le des más números.a^btambié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..9se 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