未来,可以被准确预知吗?
答案,当然是“NO”。我们无从知晓未来所发生的一切,也无法洞悉事物发展变化的所有细节。对于普通人来说,这个世界充满许多不可控的偶然,就像2020年疫情的爆发。
而那些我们无法预料、需要碰运气、可能发生、也可能不发生的事情,我们称之为“随机事件”,像摇号、中奖、抽“SSR”,还有“守株待兔”里的农夫捡到兔子等等。
然而,就是这些随机、偶然的东西,往往令我们惊喜与着迷 :
1. 游戏里随机掉落的宝物
2. 桌游里随机发放的卡牌;
3. 篮球足球比赛的最后一刻绝杀
4. 股市的随机波动等等;
这些表面看起来杂乱无章的现象,经过数学家们的研究,最终被证实包含经典的统计学规律,并因此发明了一种特殊的数字——随机数,来模拟现实世界中的随机现象。今天就让我们一起来学习一下,什么是“随机数”以及Scratch”随机数“积木的应用。
一、“随机数”是什么?
随机数,就是:由电脑生成的,用来模拟自然随机现象的一连串数字。
为了让大家更好地理解,我们来看看几个小例子:
1)掷骰子
随机摇一只色子,在落地之前,谁也不知道结果。色子的点数可能是:1、2、3、4、5、6,这六种结果互不相同、互不影响,可能性完全相同。所以摇色子的结果,就是在1-6之间取随机数。
2)抛硬币
随机抛一枚硬币,不是出现正面,就是出现反面,二者可能性相同。如果我们用1代表出现正面,用2代表出现反面,那么抛硬币一次的结果就是1或2,也就是在1和2之间随机取一个数字。
3)取号球
一个盒子里装有四种颜色的球:红球、绿球,紫球,黄球,且个数、大小相等,我们要从盒子里随机取出一个球,我们可能抽到一个红球,绿球,紫球,或一个黄球,但显然不会抽到蓝色球。如果我们将球的颜色分别命名为1,2,3,4,那么我们抽取到的球的颜色就是在1-4之间取随机数。
4)猜星座
有个小朋友刚到一个班级,认识了一个好伙伴,想知道他的星座,但是这个小伙伴比较调皮,让这个小朋友猜他的星座,两人玩起了猜星座的游戏。我们可以肯定的是,答案是12星座中的一种。如果用编程实现这个效果,我们就很有可能要用到随机数,在1-12之间取随机数。
所以,取随机数,不仅仅表示随机抽取一个数字,还包括在一个变量的很多取值内随机取一个值,比如,星期几?哪种小动物?舞台的哪个点?这些都不是数字,而是一个非数字的组合。总而言之,它们的共同点是:在一个固定的范围内,随机任意选取一个数或值。
二、Scratch“随机数”积木有哪些?如何用“随机数”,实现各类随机效果?
随机数在生活和互联网中有广泛应用。各种科学研究需要用大量的随机数来模拟科学模型和各种自然现象;人工智能算法也依靠随机数,像下围棋,或者GPS导航系统不可能穷尽所有的可行步骤,算法需要在限定的时间和一定范围内,随机选择合理的策略去探索。
在编程作品中,随机数的作用主要包括:帮我们实现一些出人意料、神出鬼没的角色出退场特效,包括出退场的时间、地点、位置、速度、大小、方向、造型、颜色等随机化,产生一种惊人的游戏效果。
当我们体验这些作品时,除了主角是我们可以操控的外,其他角色我们不知道在什么地方出现,在什么时候消失,每次出现时的方向、大小和造型也有所不同,充满随机性。
接下来我们一起看看Scratch中有哪些相关的积木,可以帮助我们实现这些出场角色的“神出鬼没”随机效果。
1、Scratch“随机数”积木
Scratch运算模块中,有直接取随机数的命令,包括在一段数值范围之间取一个随机值,比如:在1到10之间随机选一个数,可以对作品的任意数值进行随机设定。
如果我们将取随机数命令,与Scratch舞台坐标位置“移到x:0,y:0”结合,就可以实现案例中位置的随机效果。
当然我们要实现角色位置的随机效果,也可以直接用Scratch运动模块里的“移到随机位置”积木,实现位置的随机效果,包括“移到随机位置”和“在1s内滑行到随机位置”两个积木。
2、如何用随机数积木,实现各类随机效果
1)位置完全随机
“随机位置”,是指向“以整个舞台为范围的任意位置”。我们可以通过“移到随机位置”或“在1s内滑行到随机位置”实现角色位置的完全随机效果,也就是角色可以随机出现在舞台上的任意一个位置。
毛球巡逻a:在森林巡逻的案例中,如果我们将初始化积木组中的坐标位置积木替换为“移到随机位置”,结合重复执行积木,可以实现毛球自动随机出现在舞台上任意一个位置的效果。
积木代码如下:
毛球巡逻b:在森林巡逻的案例中,如果我们将初始化积木组中的坐标位置积木替换为“在1s内滑行到随机位置”,结合重复执行积木,就可以实现毛球自动随机滑行到舞台上任意一个位置的效果。
积木代码如下:
2)限定区域范围的位置随机
如果我们希望角色在指定的区域范围内随机出现,我们可以将坐标积木”移到x:0,y:0”与随机数积木组合起来一起使用,尤其当角色从舞台边缘出场,可以随机出现舞台边缘的某一个位置上。
毛球巡逻c:在森林巡逻的案例中,如果我们将初始化积木组中的横纵坐标中x或y的取值设为“在1-10之间取随机数”,设定合适的数值,结合重复执行积木,就可以实现毛球自动随机出现在固定区域的某个位置上。
积木代码如下:
毛球巡逻d:在森林巡逻的案例中,如果我们将初始化积木组中的坐标积木,替换成“在1s内滑行到x:0,y:0”,并将横纵坐标中x或y的取值设为“在1-10之间取随机数”,设定合适的数值,结合“重复执行”积木,就可以实现毛球自动随机滑行出现在固定区域的某个位置上。
积木代码如下:
3)角色大小、方向、时间随机
将面向积木、将大小设为以及等待时间与在1-10之间取随机数,就可以实现角色的出场大小、方向与时间的随机。
璀璨星空:以璀璨星空体验课为例,利用“在1-10之间取随机数“积木,设定星星的随机出场位置、大小和等待时间,实现了一群星星不停从舞台上方随机出现、下坠的视觉效果。其中,一个星星的随机数设置完成以后,可以批量复制,简化重复性操作,节省体力。
积木代码如下:
4)角色移动速度随机
除了设定角色出场的大小、方向、时间,还可以对角色的每一次出场速度进行设定。
气球案例a:气球从舞台底部上升到舞台顶部时消失,然后重新回到底部继续上升。在这个过程中,气球出现位置随机,并一直匀速上升,且每次出场的速度保持不变。
积木代码如下:
气球案例b:如果我们希望气球的出场速度随机,但是上升过程中保持匀速,我们的第一想法或许是直接将“y坐标增加10步”积木与”在1和10s之间取随机数“进行组合。这样可以改变气球的出场速度,但是会让气球的上升速度也改变。这时候,我们只需要建立一个变量,命名为“移动速度”,记录气球从底部上升的速度。然后将“移动速度”设定为随机,而纵坐标只需要增加“移动速度”,就可以实现气球出场时速度随机,而上升过程匀速!
积木代码如下:
写在最后
总而言之,我们可以看到,随机数的神奇妙用不只一点点。善于运用随机数,可以帮我们实现很多神奇的效果,包括增加作品的复杂性、变化性和趣味性,更重要的是简化作品的重复操作,还能帮孩子理解复杂的概念,学好数学。总之,学习编程,读懂世界!少儿编程学习成长之路,奇码学院一直与你相伴!