使用Mathematica进行可视化操作的“3n%1”问题
1. 使用EvenQ函数判断数字是否为偶数
在Mathematica中,使用EvenQ函数可以判断一个数字是否为偶数。需要注意的是,Mathematica认为12.0不是偶数。
2. 执行“3n%1”规则操作
我们以121为第一个元素,使用NestWhileList函数执行“3n%1”规则的操作。代码如下:
NestWhileList[If[EvenQ[], /2, 3 1] , 121, ! 1 ]
3. 实现人机互动的代码
我们可以使用Manipulate函数实现人机互动的可视化操作。代码如下:
Manipulate[
Pane[
[Framed[Style[, Background->Orange, "Label"], Background->Blue]/@
NestWhileList[If[EvenQ[], /2, 3 1] , i, ! 1 ], "->"],
{500, 420}, Alignment->{Left, Center}],
{i, 50, Style["开始的数",@Green,Bold,30]}, 1,150,1]
4. 列举30到40之间整数的“3n%1”过程
我们可以使用Table函数列举30到40之间的整数经过“3n%1”规则的过程。代码如下:
Table[NestWhileList[If[EvenQ[], /2, 3 1] , i, ! 1 ], {i, 30, 40}]
5. 观察前150个数字经过多少步得到1
我们可以使用Table函数观察前150个数字经过多少步会得到1。代码如下:
Table[Length[NestWhileList[If[EvenQ[], /2, 3 1] , i, ! 1 ]], {i, 1, 150}]
6. 画出对应的点线图
我们可以使用ListLinePlot函数画出前150个数字与相应步骤的点线图。代码如下:
ListLinePlot[Table[Length[NestWhileList[If[EvenQ[], /2, 3 1] , i, ! 1 ]], {i, 1, 150}]]
7. 画出前10000个数字与相应步骤的点阵图,并求出最大的步骤
我们可以使用ListPlot函数画出前10000个数字与相应步骤的点阵图,并通过Max函数求出最大的步骤。代码如下:
ListPlot[Table[Length[NestWhileList[If[EvenQ[], /2, 3 1] , i, ! 1 ]], {i, 1, 10000}]]
Table[Length[NestWhileList[If[EvenQ[], /2, 3 1] , i, ! 1 ]], {i, 1, 10000}] // Max
通过以上代码,我们可以发现最大的步骤是262。你能否找出是哪个数字的步骤最大呢?
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。