使用 sagetex 写入计算结果(分数)

使用 sagetex 写入计算结果(分数)

我编写了此代码来添加两个随机分数,并使用 sage 计算结果,但我不知道如何使结果以以下形式显示\displaystyle\dfrac{}{}

\begin{sagesilent}
output = r"\begin{multicols}{4}"
output += r"\begin{itemize}"
for i in range (4):
    a = [Integer(randint(1,3)), Integer(randint(2,4)), Integer(randint(3,5)), Integer(randint(4,6))]
    output += r"\item $\dfrac{{{}}}{{{}}}+\dfrac{{{}}}{{{}}}={}$".format(Integer(a[0]), Integer(a[1]), Integer(a[2]), Integer(a[3]), Integer(a[0])/Integer(a[1])+Integer(a[2])/Integer(a[3]))
output += r"\end{itemize}"
output += r"\end{multicols}"
\end{sagesilent}
    
\sagestr{output}

在此处输入图片描述

谢谢。

答案1

您可以先计算结果(b如下 — 抱歉,不是最能引起共鸣的名字),然后将其分子和分母代入\dfrac

\begin{sagesilent}
output = r"\begin{multicols}{4}"
output += r"\begin{itemize}"
for i in range (4):
    a = [Integer(randint(1,3)), Integer(randint(2,4)), Integer(randint(3,5)), Integer(randint(4,6))]
    b = a[0]/a[1] + a[2]/a[3]
    output += r"\item $\dfrac{{{}}}{{{}}}+\dfrac{{{}}}{{{}}}=\dfrac{{{}}}{{{}}}$".format(a[0], a[1], a[2], a[3], b.numerator(), b.denominator())
output += r"\end{itemize}"
output += r"\end{multicols}"
\end{sagesilent}
    
\sagestr{output}

答案2

我发现了另一种可能性,即使用latex()函数返回一个乳胶表达式。

\begin{sagesilent}
output = r"\begin{multicols}{4}"
output += r"\begin{itemize}"
for i in range (4):
    a = [Integer(randint(1,3)), Integer(randint(2,4)), Integer(randint(3,5)), Integer(randint(4,6))]
    f1 = a[0]/a[1]
    f2 = a[2]/a[3]
    f = f1 + f2
    output += r"\item $\displaystyle{}+\displaystyle{}=\displaystyle{}$".format(latex(f1), latex(f2), latex(f))
output += r"\end{itemize}"
output += r"\end{multicols}"
\end{sagesilent}

\sagestr{output}

相关内容