如何让循环结构命令仅显示最后一行结果
mathematica吧
全部回复
仅看楼主
level 10
Fetchens 楼主
举个慕课中符号计算语言-Mathematica课件8-2循环结构的例子
s = 0; k = 1; While[k <= 5, s = s + k; Print[s]; k++]
1
3
6
10
15
计算结果把过程的每一步都显示出来了,有时我们只需要最后一行最终结果(比如作业中一题足足有1001行,但只需要最后一行),应该怎么操作呢?
2019年06月30日 14点06分 1
level 10
In: Table[Evaluate[ s[k] /. First@RSolve[{s[k] == s[k - 1] + k, s[1] == 0}, s[k], k]], {k, 1, 101}// Last // Timing
Out: {0.0156001, 5150}
2019年07月01日 01点07分 2
能不能分步解析一下呢?
2019年07月03日 03点07分
@Fetchens 主要是Table的效率高,记得之前吧主有个贴是说循环效率的,暂时没找到,大意是少用While,Do做循环。我这句话只是用了RSolve求解出它的通项公式而已,但是RSolve费了很多时间,降低了效率。
2019年07月03日 23点07分
@奥斯马登 这个描述我看懂了,但前述输入语言没完全看明白
2019年07月04日 03点07分
@Fetchens mma的函数有三种引用函数的,即“@”(前置),“~”(连接),“//”(后置)。 s[k] /. First@RSolve[{s[k] == s[k - 1] + k, s[1] == 0}, s[k], k]这是将计算结果变为表达式
2019年07月04日 08点07分
1