大鲨鱼咬手指玩具的具体实现原理
作者:陆
链接:/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的随机结果也不应该考虑在内,因为触发任何一个都会咬人,所以实际上不可能检测到一个以上的触发机制。
随机分布可能有更好的参数,但我无意探究~
哦,对了,我还找到了一个答案。这个答案是玩具是主人自己打开的,应该比较可信:
一排齿下有一个可转动的连杆。每次鲨鱼嘴张开,连杆都会被弹簧机构带动旋转,然后随机停止。摆臂停在哪颗牙下,鲨鱼就会按下那颗牙咬掉。小时候拆弹簧放飞过。找了半天才找回来装上。