收藏
搞趣网 >Minecraft我的世界> 我的世界红石技巧 随机数生成器

我的世界红石技巧 随机数生成器

时间:2018-06-26 来源: 搞趣网 编辑:Anne

无论在现实世界还是《我的世界》中,随机数都是一个有意思的东西,它可以用来抽奖,甚至还能用来设置密码。不过事实上,利用计算机生成的随机数都是伪随机数,严格的真随机数并不存在,本篇教程中的随机数生成器的目的是让生成的随机数更加接近真随机,利用这个生成器能够生成0-255的随机数。

一、基本原理:

首先我的世界中,物品分为可堆叠(羊毛)以及不可堆叠(铁剑),他们在容器(漏斗)中可被比较器读取,输出不同的信号强度。在漏斗中,单一物品所输出的信号强度,可堆叠物品为1,不可堆叠为3,这可以从下图中红石灯亮起的数目看出。

通过将投掷器与漏斗相连,我们得到投掷器-漏斗脉冲发生器,同时我们在投掷器中分别加入羊毛和铁剑,来分析这种情况下投掷器会优先输出可堆叠还是不可堆叠物品。

按照上图做一个高频电路来控制投掷器-漏斗脉冲发生器,让其不断输出信号,在具体操作中,我们发现红石灯亮起的数目在1和3之间不断随机切换,因此我们可以发现投掷器投掷物品是随机的。

二、最简单的随机数生成器

从一中的装置我们知道了比较器输出的信号强度会在1和3之间切换,因此我们可以将其改造成输出0和1的装置,即在比较器后三格处放一个红石灯,这样如果比较器输出的信号强度为3,那么红石灯亮,如果输出强度为1则红石灯灭。

有了这个基础之后,我们就可以制作一个最简单的随机数生成器,如下图所示,将这个装置复制8份,这样就变成了一个8位的随机数生成器。将它们接入到高频电路上,红石灯会一直在亮灭之间随机变化,利用下面那个拉杆固定红石灯状态,我们用红石灯的状态来表示二进制中的0和1,亮为1,灭为0。那么下图这一时刻表示的二进制数字就是01110011,转换为十进制就是115。利用这个装置能生成的最大数为11111111,即255。

因为投掷器投掷物品具有随机性,所以其实对大多数玩家来说,这样的随机数生成器就能用了。但是实际上,投掷器是应用伪随机机制射出容器内物品,虽然看似随机,但还是有规律可循。

三、较严谨的随机数生成器

在玩家不了解伪随机公式的情况下,二中的随机数生成器也可以实现随机生成数字的功能,但是这样的结果肯定不够完美。因此,我们接下来就要制作一个更加严谨的随机数生成器。

下面这张是完成图:

每个随机单元采用4个投掷器-漏斗结构。当这个单元被激活后,4个投掷器同时输出一次脉冲。只要其中1个脉冲的信号强度为3,这个脉冲将会激活加法状态的红石比较器,这个单元将被再次激活;如果4个脉冲的强度都为1,那么这个单元将只被激活一次后停止运作。

责任编辑【Anne