首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >递归生成给定python列表的连分式的LaTeX表达式

递归生成给定python列表的连分式的LaTeX表达式
EN

Stack Overflow用户
提问于 2022-11-27 13:00:41
回答 1查看 36关注 0票数 1

我正在尝试为LaTeX中的连分式生成Jupyter Notebook字符串表达式。例如,给定的Python x=[1,2,3,4,5]可以编写为连续部分:

生成这个LaTeX分数的结构表达式是\\frac{Numerator}{Denominator}

使用非递归代码:

代码语言:javascript
复制
from IPython.display import display, Markdown

# Non-recursive: 
def nest_frac(previous_expr, numerator_expr1, denominator_expr2):
    return previous_expr + " + \\frac{"+ numerator_expr1 + "}{" + denominator_expr2 + "}"

# Cumbersome, error-prone
display(Markdown("$"+ \
                 nest_frac("1","1", \
                           nest_frac("2","1", \
                                     nest_frac("3","1", \
                                              nest_frac("4","1", "5") \
                                              )  \
                                     ) \
                          ) \
            + "$") \
       )

x = [1,2,3,4,5]

如何递归地生成提供了python列表的表达式。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-27 14:40:06

我们可以使用nest_frac_N作为附加参数来定义函数x

代码语言:javascript
复制
def nest_frac_N(previous_expr, numerator_expr1, denominator_expr2, x):
    
    temp_frac=str(x[len(x)-1]-1) +"+  \\frac{"+str(numerator_expr1)+"}{"+str(x[len(x)-1])+"}"
    
    for i in reversed(x[:len(x)-2]):
        
        temp_frac = str(i) +"+  \\frac{1}{"+temp_frac+"}"
    
    return temp_frac

如果我们需要x=[1,2,3,4,5]的输出,我们需要:

代码语言:javascript
复制
>>> x = [1,2,3,4,5]
>>> nest_frac_N(1, 1, 1, x)
... '1+  \\frac{1}{2+  \\frac{1}{3+  \\frac{1}{4+  \\frac{1}{5}}}}'

要获得我们使用的标记格式:

代码语言:javascript
复制
display(Markdown("$"+nest_frac_N(1, 1, 1, x)+"$"))

让我们将x大小改为10,以确保该函数是灵活的:

输出

代码语言:javascript
复制
>>> x = [1,2,3,4,5,6,7,8,9,10]
>>> nest_frac_N(1, 1, 1, x)
... '1+  \\frac{1}{2+  \\frac{1}{3+  \\frac{1}{4+  \\frac{1}{5+  \\frac{1}{6+  \\frac{1}{7+  \\frac{1}{8+  \\frac{1}{9+  \\frac{1}{10}}}}}}}}}'

为了得到这个分数:

代码语言:javascript
复制
display(Markdown("$"+nest_frac_N(1, 1, 1, x)+"$"))

我们可以轻松地重新设置函数,以便直接显示标记格式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74590234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档