minecraft红石吧 关注:8,441贴子:43,301

回复:【教程】模红(红石模电)的入门教学与元件应用

只看楼主收藏回复

乘法器拓展:
鉴于两个数相乘一般结果会比较大,多为强模,上面的模块只是为了阐明原理,接下来给大家放上一些实用的模块
强模乘法模块:
算法:累加
作者:吸管
堆叠体积:3x4x2(宽,高,长)


如上图,下方的比较器是输入除数的,这个除数控制执行加多少次,由漏斗对其进行累减1,来检测乘数是多少。右上方的比较器输入的是加数,由沙子阀门控制,输入输出都可以是强模
下图为堆叠模块:


IP属地:浙江37楼2015-09-26 18:24
收起回复
    除法器:
    (这里先介绍传统算法)
    除法相当于累减,先介绍算法,设被除数a,除数b,重复执行:当a>b的时候,a的值就等于a-b。
    减的次数就是商,剩下的a就是余数
    举例:11÷3,a=11,b=3:第一步:11>3,所以a=11-3=8。第二步:8>3,所以a=8-3=5。第三步:5>3,所以a=5-3=2。这时候a比b小了,结束。一共减了3次,所以商是3;剩下的a为2,所以余数为2
    所以,11÷3=3余2
    总结:需要一个比较过程,比较a和b的大小,再进行减法运算。同时需要一个累加器来记录共减了多少次。这种算法的优点是简单直接,但是缺点就是速度不够快,而且对于强模来说这种算法会变成很棘手,其中最耗时间的过程为比较的过程。


    IP属地:浙江38楼2015-09-26 19:07
    收起回复
      不错,以收藏


      IP属地:辽宁来自iPhone客户端39楼2015-09-26 23:08
      回复
        楼主讲的很详细


        IP属地:天津来自Android客户端40楼2015-09-27 09:49
        收起回复
          学习了


          IP属地:福建来自Android客户端41楼2015-09-27 09:57
          回复
            刚参加完哔哩哔哩的建筑比赛来着,国庆长假快被消耗殆尽了,接下来三天我尽量挤出时间更


            IP属地:浙江来自iPhone客户端42楼2015-10-05 12:05
            收起回复
              传统算法的除法器由于找不到了,所以在这里就直接上新算法
              除法器:
              新算法:设被除数a,除数b,多次用b减去a+1(这里要注意,我们要事先对除数进行加一运算),直到a的信号为0,记录一共减了多少次,这个次数减一就是商;并且导出a为0位置的上一位的a再减去一为余数。
              举例:11÷3,a=11,b=3。开始狂减:12-3=8,9-3=5,6-3=2,3-3=0(因为不会有负数所以我们得到的最后结果是0,后面继续减的过程没有意义所以不写出来了,但实际上是有的),我们看到减了4次,所以商为4-1=3,;我们看到在3-3的时候a变成了0,所以导出上一位的a:3再减去1=2
              所以,11÷3=3余2
              总结:这种算法速度比较快,不需要比较的过程,比较粗暴,但是相对中途运算量没有传统算法大,缺点就是不能直接输入被除数,被除数在输入前要先加一才能开始计算


              IP属地:浙江43楼2015-10-05 18:32
              收起回复
                666666666666
                这是我半辈子的膝盖,请收下


                来自Android客户端44楼2015-10-05 18:46
                回复
                  下面我们来建造新算法的除法模块(我破例用不同颜色的羊毛来建造这样让大家把每个部分看得清楚一点)
                  强模乘法模块:
                  算法:累减
                  作者:吸管
                  堆叠体积:5x6x2(宽,高,长)
                  详细介绍建造过程附图文解说,因为有很多个部分我们一个一个来
                  首先这里浅蓝色的是累计商的部分,也就是一个累加器

                  放上比较器,右边的为减法模式(右边那个比较器的方向反了,你可以调过来,对结果没有影响但是输出的地方会偏离)

                  放上一个水缸并灌上水,用空瓶舀走2格水,剩下一格

                  按上活塞

                  绿色这里是控制余数输出部分,也就是导出上一位的a

                  接下来顶部要拉除数的线(灰色羊毛)和被除数的线(品红色),注意中间有个半砖

                  放上中继器,这里的摆法用意是“拼命用除数减去被除数”,品红色羊毛上加一个火把,这个火把是用来检测是否为0的

                  如果为零,就导出上一位,如图的绿色线部分,就是连接到上一位的输出商控制部分

                  黄色这里,是输出余数用的线

                  放上比较器,我们可以看到沙子是充当一个阀门的作用


                  IP属地:浙江45楼2015-10-05 20:56
                  收起回复
                    这是一个成品单元

                    我们把它堆叠起来



                    堆叠起来后还需要加一点补丁,比如累加器需要有信号源,除数输入时需要加一,余数输出时需要减一


                    IP属地:浙江46楼2015-10-05 21:03
                    收起回复
                      接下来打补丁
                      输入被除数要先加一,这里的两个熔炉(其实位置放错了大家自己改改),仅对弱模信号有用,强模信号输入要换用比较器环,加法请参考上方加法器教程

                      余数输出要减一
                      这里犯老毛病压缩了一下,熔炉是信号源

                      下面这个是计算商的累加器,最终结果要减一,我也在两个信号源上做了手脚,左边的信号源强度比左边大一


                      IP属地:浙江47楼2015-10-05 22:24
                      收起回复
                        更新除法器居然没反应?


                        IP属地:浙江来自iPhone客户端48楼2015-10-06 00:20
                        收起回复
                          不错


                          IP属地:广东来自Android客户端49楼2015-10-06 00:24
                          回复


                            来自Android客户端50楼2015-10-06 14:19
                            回复


                              来自Android客户端51楼2015-10-06 14:20
                              回复