2024-06-01 00:49:31 发布
网友
我想在python中将一个方程建模为树。 例如:
x = exp(((-0.5)*((f/sqrt(d))**2)))
我该怎么做?我想换树枝, 删除部分树等,然后将其转换回 文本形式的新等式。在
你能给我举一个代码库的例子吗?在
干杯 编辑1:
我已经走了这么远:
现在它打印树的所有节点。但是我希望能够切换分支, 删除分支、插入分支和更改运算符/操作数。 我需要这个因为我想让树随机变异。在
运算符和函数是父节点,操作数是叶。在
从自顶向下的方法开始:[operator{operand1,operand2}]
其次是:
[ = { x, [ * { exp(((-0.5), ((f/sqrt(d))**2))) }] }]
然后:
[ = { x, [ * { [ exp { -0.5 }], [ ** { f/sqrt(d)), 2 }] }] }]
你明白了。在
这个link可能是你的答案。在
PyParsing应该可以帮助你。(严格地说,我假设您的等式不一定使用Python语法本身。)
您需要的是构建并使用解析树。除了内置的解析之外,如果您的方程超出了python的本机语法,请看一下this overview,它可能已经过时了。有很多选择。在
运算符和函数是父节点,操作数是叶。在
从自顶向下的方法开始:[operator{operand1,operand2}]
^{pr2}$其次是:
然后:
你明白了。在
这个link可能是你的答案。在
PyParsing应该可以帮助你。(严格地说,我假设您的等式不一定使用Python语法本身。)
您需要的是构建并使用解析树。除了内置的解析之外,如果您的方程超出了python的本机语法,请看一下this overview,它可能已经过时了。有很多选择。在
相关问题 更多 >
编程相关推荐