import random from fractions import Fraction import subprocess def generar_fraccion_aleatoria(): numerador = random.randint(1, 10) denominador = random.randint(1, 10) return numerador, denominador def simplificar_fraccion(numerador, denominador): fraccion = Fraction(numerador, denominador) if fraccion.denominator == 1: return f"{fraccion.numerator}" else: return f"\\frac{{{fraccion.numerator}}}{{{fraccion.denominator}}}" def generar_operacion_con_fracciones(): a, b = generar_fraccion_aleatoria() c, d = generar_fraccion_aleatoria() operacion = random.randint(0, 3) if operacion == 0: operacion_str = f"\\frac{{{a}}}{{{b}}} + \\frac{{{c}}}{{{d}}}" resultado = simplificar_fraccion(a * d + b * c, b * d) elif operacion == 1: operacion_str = f"\\frac{{{a}}}{{{b}}} - \\frac{{{c}}}{{{d}}}" resultado = simplificar_fraccion(a * d - b * c, b * d) elif operacion == 2: operacion_str = f"\\frac{{{a}}}{{{b}}} \\times \\frac{{{c}}}{{{d}}}" resultado = simplificar_fraccion(a * c, b * d) elif operacion == 3: operacion_str = f"\\frac{{{a}}}{{{b}}} \\div \\frac{{{c}}}{{{d}}}" resultado = simplificar_fraccion(a * d, b * c) return f"\\subsection*{{\\( {operacion_str} \\)}}\n\\textbf{{Solución:}} \\( {resultado} \\)\n" def main(): latex_content = r""" \documentclass{article} \usepackage{amsmath} \usepackage{multicol} \begin{document} """ for i in range(1, 11): if i > 1: latex_content += r"\newpage" latex_content += f"\\section*{{Boletín {i}}}\n" latex_content += r"\begin{multicols}{2}" for _ in range(20): latex_content += generar_operacion_con_fracciones() latex_content += r"\end{multicols}" latex_content += r"\end{document}" with open("boletins_fraccions.tex", "w") as file: file.write(latex_content) # Compilar el archivo LaTeX en PDF usando pdflatex subprocess.run(["pdflatex", "boletins_fraccions.tex"]) if __name__ == "__main__": main()