Reducir fracciones de manera incorrecta
En este desafío de código de golf tienes que encontrar fracciones que se puedan reducir de manera incorrecta pero que terminen en el mismo número.
Nota: la reducción de fracciones de la manera incorrecta aquí tiene una definición exacta, ver detalles.
Ejemplo:
64/16 = 6 4/1 6 = 4/1 = 4
Por supuesto, no puede simplemente golpear ambos 6es, pero aquí todavía termina con el valor correcto. En este desafío tienes que encontrar ejemplos como este.
Detalles
Debe escribir una función / programa que acepte un entero positivo n
como entrada y salidas / devuelva una lista / matriz de las fracciones en formato
numerator1,denominator1,numerator2,denominator2,...
El programa tiene que averiguar para cada fracción a/b
con a+b=n
y a,b>0
si puede reducirse de manera incorrecta . (No importa si se puede reducir de la manera convencional o si hay muchas posibilidades de reducciones, solo tiene que ser posible reducirlo de la manera incorrecta al menos de una manera).
Definición de la manera incorrecta: una fracción se puede reducir de manera incorrecta si y solo si la misma secuencia de dígitos sucesivos aparece en ayb y si el valor de la fracción permanece igual si quita la subcadena.
Ejemplo: 1536/353 se puede 'reducir' a 16/3 pero esos dos valores no son iguales, por lo que no puede reducir esta fracción de manera incorrecta .
Tenga en cuenta que esta definición de reducir el camino equivocado también puede incluir fracciones que se reducen del modo correcto: 110/10 = 11/1
está dentro de la definición de reducir el camino equivocado aunque sea un paso válido.
Puntuación
El menor número de bytes gana. Puede escribir una función o programa que acepte un número entero y devuelva una matriz o un programa que use stdin / stdout o puede considerar n guardado en una variable y al final del programa, la lista debe guardarse en otra variable.
Casos de prueba
Incluya los siguientes casos de prueba (dígame cuáles debo agregar, no tengo idea de cuántas de esas fracciones hay / cuántos ejemplos esperar)
n=80 (64/16 should be in this list)
n=147 (98/49 should be in this list)
n=500 (294/196 should be in this list) WRONG since 294+196 != 500 Thanks Falko
1010/10 = 101/1 && 1010/10 /= 110/1
n=147
) es incorrecta: 49/89 != 4/8
.