大鲨鱼咬手指玩具的具体实现原理

从知乎上往下走的答案:

作者:陆

链接:/question/21766 391/答案/19256506。

来源:知乎。

版权归作者所有。商业转载请联系作者授权,非商业转载请注明出处。

没玩过~不过我觉得应该是纯机械做的。

当鲨鱼用手张开嘴时,能量就储存在机器弹簧里。

就像一把自动打开的伞,收起来就储存了能量。

在齿的下面是一个盘形机构,其上设有多个普通孔和至少一个触发孔。

在破碎的过程中,推动孔盘旋转,导致孔每次都发生变化。

当触发孔上方的牙齿受压时,储存的能量推动上腭咬合。

拉开,扣住,旋转,按下,触发。

虽然只是瞎猜,但大概是这样的~

——————————如何实现随机性补充。

这大概就是选对了质数吧。

从问题图中,我目测排的齿数大概是13,排满的话大概是23。

于是我做了一个孔板,在1和13棋子处构造了触发孔。

然后张开嘴,一次转七圈。

然后根据下面的代码得到结果。

var指数1=0

var index2=12

for(var I:int = 0;我& lt100;i++){

if(index 1 & lt;13。& ampindex2 & lt13){

跟踪(索引1+1,索引2+1)

} else if(index 1 & lt;13){

跟踪(索引1+1)

} else if(index 2 & lt;13){

跟踪(索引2+1)

}否则{

跟踪(“错误”)

}

index1+=7

指数2+=7

指数1 =指数1%23

索引2 =索引2%23

}

结果是

1 13

11

13 2

11

2

12

10

12 1

10

1 13

11

13 2

…………

结果得到了一个看似随机的结果,虽然仔细一看是假的。但是娱乐孩子大概也可以吧。

另外,一些超过1的随机结果也不应该考虑在内,因为触发任何一个都会咬人,所以实际上不可能检测到一个以上的触发机制。

随机分布可能有更好的参数,但我无意探究~

哦,对了,我还找到了一个答案。这个答案是玩具是主人自己打开的,应该比较可信:

一排齿下有一个可转动的连杆。每次鲨鱼嘴张开,连杆都会被弹簧机构带动旋转,然后随机停止。摆臂停在哪颗牙下,鲨鱼就会按下那颗牙咬掉。小时候拆弹簧放飞过。找了半天才找回来装上。