Esta pregunta te la trajo un juego que me gusta jugar cuando estoy atrapado en largas reuniones telefónicas.
Dadas dos veces de un reloj de 24 horas (de 00:00 a 23:59), ¿cuántas ecuaciones matemáticas válidas se pueden generar con todas las veces intermedias usando solo operaciones aritméticas básicas?
Entrada: dos cadenas de cuatro dígitos (sin dos puntos) que representan tiempos válidos en un ciclo de 24 horas.
Ejemplos:
Para entrada = 0000, 1300
03:26 produces: "0+3*2=6" and "03*2=6" etc.
11:10 produces quite a few, including: "1*1=1+0" and "1=1=1^0" and "1=11^0" etc.
12:24 produces: "1/2=2/4" and "1=(2*2)/4" etc.
Las operaciones válidas son:
- adición
- sustracción
- multiplicación
- división (punto flotante)
- exponenciación
- factorial
Otros símbolos permitidos
- Paréntesis
- Signos iguales
El código más corto gana.
Notas
- El objetivo es encontrar el número de expresiones válidas entre dos veces, no el número de veces que contienen una expresión válida.
- Los dos tiempos dados como entrada se incluyen en el rango de tiempos.
- Puede agrupar los dígitos de cualquier manera posible, por lo que "1223" puede ser "12 23" o "1 2 23" o "1 223", etc., etc.
- Puede usar tantos paréntesis como sea necesario.
- Puede usar más de un
=
signo. Por ejemplo, el tiempo11:11
tiene la expresión válida1=1=1=1
. - Si la primera vez ocurre cronológicamente después de la segunda, el rango de tiempos debe ajustarse como si se cruzara al día siguiente.
- Los números deben permanecer en su orden original; no puede volver a ordenar los dígitos.
- Cuando se agrupan números, los ceros pueden ser absolutamente el dígito más delantero, en cuyo caso, se ignoran ("0303" agrupado como "03 03" son solo dos dígitos con el valor de 3.)
- NO PUEDE usar el signo menos como negación unaria. Por lo tanto, "12:01" NO produce "1-2 = - (01)", pero produce "1-2 = 0-1".
- NO PUEDE agregar puntos decimales a los dígitos. Por lo tanto, "12:05" NO produce "1/2 = 0.5".
- Sin encadenamiento de factoriales: un dígito puede ser seguido por un máximo de "!", No más, de lo contrario, muchas veces tendrían infinitas soluciones. Ej: "5!" es válido pero "5 !!" no es válido.
0000 1300
deberían las ecuaciones derivadas 0000
e 1300
incluirse en el recuento?