首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在mathematica中,我如何在do循环中执行多个表达式?

问在mathematica中,我如何在do循环中执行多个表达式?
EN

Stack Overflow用户
提问于 2017-12-11 09:39:01
回答 2查看 4K关注 0票数 2

我想实现这个功能:做expr(1),expr(2)...expr(n),{i,1,j}

执行expr(k)需要expr(k-1)的结果,不是简单的多层do循环就能实现的。如何通过do循环执行函数?还是通过mathematica中的其他循环?(我还注意到for和while循环只能支持一个expr,就像循环一样)

EN

回答 2

Stack Overflow用户

发布于 2017-12-11 10:01:59

尝试使用分号分隔,而不是逗号分隔。像这样:

代码语言:javascript
复制
y = 0
Do[y += x; Print[y], {x, 1, 5}]
票数 4
EN

Stack Overflow用户

发布于 2017-12-11 23:47:31

Do循环,以及命令式编程语言中的许多其他控制流构造,几乎总是数学编程问题的正确答案。

你没有告诉我们expr应该计算什么,所以很难提供一个非常通用的答案……因此,我将使用阶乘作为一个简单的示例,说明如何在expr[n]依赖于expr[n-1]的情况下编写函数

代码语言:javascript
复制
fact[0] = 1
fact[n_] := n*fact[n-1]  

在这里,我在两条规则中定义了阶乘函数;第一条规则建立了基本情况,第二条规则建立了0以外的值的情况。为了避免向函数提供错误数据的情况,我们可能更喜欢这样的公式

代码语言:javascript
复制
fact[0] = 1
fact[n_Integer /; n > 0] := n*fact[n-1]  

在此版本中,函数fact将仅对正整数或0进行操作。

(注意:对于那些了解Mathematica的人:是的,我知道这不是编写阶乘函数的好方法,并且有一个用于计算阶乘的内置函数。但这应该是为了帮助那些看起来完全是新手的人。)

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

https://stackoverflow.com/questions/47745380

复制
相关文章

相似问题

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