我编写了此代码来添加两个随机分数,并使用 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}