2016 - 2024

感恩一路有你

使用Mathematica进行可视化操作的“3n%1”问题

浏览量:3760 时间:2024-06-23 12:56:44 作者:采采

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。你能否找出是哪个数字的步骤最大呢?

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。