level 1
atlight
楼主
While[n > 1, Print[n]; If[EvenQ[n], n = n/2, n = 3*n + 1]]
表达式含义:只要n大于1 如果n是偶数n=n/2 奇数n=3n+1
这个表达式,如果先定义下n的值是可以运行的 不过每次都要先重定义n值 再复制上面表达式太麻烦
所以想换成一个函数q3n[n_]
q3n[n_] := While[n > 1, Print[n]; If[EvenQ[n], n = n/2, n = 3*n + 1]]
q3n[10]
不知道为什么, 一模一样的定法。换成函数。一执行就卡死了....
什么情况 完全搞不懂。笔者不理解这逻辑 我完全可以换成python或者c++等语言来写都可以
2018年06月29日 15点06分
1
表达式含义:只要n大于1 如果n是偶数n=n/2 奇数n=3n+1
这个表达式,如果先定义下n的值是可以运行的 不过每次都要先重定义n值 再复制上面表达式太麻烦
所以想换成一个函数q3n[n_]
q3n[n_] := While[n > 1, Print[n]; If[EvenQ[n], n = n/2, n = 3*n + 1]]
q3n[10]
不知道为什么, 一模一样的定法。换成函数。一执行就卡死了....
什么情况 完全搞不懂。笔者不理解这逻辑 我完全可以换成python或者c++等语言来写都可以