Scratch西西弗斯黑洞

您所在的位置:网站首页 数字黑洞是什么原理 Scratch西西弗斯黑洞

Scratch西西弗斯黑洞

2024-03-16 01:03| 来源: 网络整理| 查看: 265

什么是西西弗斯黑洞

大家知道宇宙中有一种叫“黑洞”的天体,是由高密度物质组成,连光线射到这个天体上都被吸收掉,不能反射,人们看不见这个天体,所以称它为黑洞。

黑洞黑洞

在数学中,也有着一种神秘而有趣的“数字黑洞”现象,所谓数字黑洞,就是你指定任何一个数字,在某种黑洞规则下,经过反复运算后,最终都会得到固定的一个数值,或则陷入医嘱数值的循环之中,就像宇宙中的黑洞吞噬它周围的任何物质一样。

西西弗斯黑洞就是一种运算简单的数字黑洞,也被称为“123数字黑洞”,其规则如下:

任意取一个自然数,求出它所包含偶数的个数、奇数的个数和这个数的位数,将这3个数按照“偶数-奇数-总数”的顺序排列得到一个新数。对这个新数重复前面的做法,最终结果必然得到123。

例如,数字81872115378,其中偶数个数是4,奇数个数是7,是11位数,又组成一个新的数4711。该数有1个偶数,3个奇数,是4位数,又组成新数134。再重复以上程序,1个偶数,2个奇数,是3位数,便得到123黑洞。反复重复以上程序,始终是123,就再也逃不出去,得不到新的数了。

为什么把数学黑洞123叫西西弗斯数呢?

西西弗斯是希腊神话中的人物,它是科林斯的建立者和国王。他甚至一度绑架了死神,让世间没有了死亡。最后,西西弗斯触犯了众神,诸神为了惩罚西西弗斯,便要求他把一块巨石推上山顶,而由于那巨石太重了,每每未上山顶就又滚下山去,前功尽弃,于是他就不断重复、永无止境地做这件事——诸神认为再也没有比进行这种无效无望的劳动更为严厉的惩罚了。

西西弗斯神话故事西西弗斯神话故事

西西弗斯的生命就在这样一件无效又无望的劳作当中慢慢消耗殆尽,永无休止,因此,人们把123黑洞叫做西西弗斯数。

编程思路

根据123数字黑洞的规则,我们可以将问题拆分成两个模块:

入口程序,接收用户的输入,并判断是否为数字,然后将其放入数字黑洞中数字黑洞123模块,按照数字黑洞规则,对数字进行运算,直到得到123为止,由于每次运算的规则都是一样的,需要用到递归的编程思想,而递归必须使用函数,也就是Scratch中的自制积木。 程序实现 1.创建“123数字黑洞”自制积木

首先,我们来创建“123数字黑洞”自制积木,需要添加一个参数,命名为自然数,如图所示:

建立“123数字黑洞”自制积木建立“123数字黑洞”自制积木

根据123数字黑洞规则,需要统计自然数中偶数、奇数和总数的个数,因此需要添加3个变量,并分别命名为“偶数个数”、“奇数个数”和“总个数”,并分别计算出它们的值,代码如图所示:

分别计算偶数、奇数和总数分别计算偶数、奇数和总数

注意:如何判断是偶数和奇数,用到了小学一年级就学习的单双数(奇偶数)知识,凡是能被2整除的数就是偶数,否则就是奇数,那怎么知道是否被2整除了,这就是涉及到除法和余数的概念和知识,如果一个数除以2,其余数为0,说明能被2整除,那么这个数就是偶数。

接下来,就需要将三个数字按照“偶数个数-奇数个数-总个数”的顺序组成一个新的数字,为方便起见,建立一个变量“新数”用来表示,然后再次使用“123数字黑洞”自制积木进行运算,这部分的代码如图所示:

递归调用“123数字黑洞”递归调用“123数字黑洞”

在使用递归编程时,有一个非常重要的点—递归的出口,为了避免陷入死循环,需要添加一个出口,根据前面的规则描述,当得到的新数字为123时,再怎么计算,得到的永远都是123,所以,123就是我们的出口,也就说,如果数字,已经是123了,就直接退出循环,也就是停止脚本,完整的代码如下所示:

“123数字黑洞”自制积木完整代码“123数字黑洞”自制积木完整代码

注意:这里的“日志”也是一个列表,我们将每次计算得到的数字,存入到这个日志列表中,这样就可以更清楚的看到123数字黑洞的计算过程。

2.入口程序

有了“123数字黑洞”自制积木,接下来就可以编写入口程序了,每次询问用户输入任意一个自然数,然后调用自制积木,查看“日志”列表,就可以测试所有的数字了,其代码如下:

入口程序入口程序 运行效果

Scratch 123数字黑洞的运行效果如图所示:

123数字黑洞运行效果123数字黑洞运行效果


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3