本實(shí)用新型涉及一種隨機(jī)數(shù)可視化裝置,屬于隨機(jī)數(shù)可視化領(lǐng)域、機(jī)電控制領(lǐng)域。
背景技術(shù):
在統(tǒng)計學(xué)、密碼學(xué)等不同技術(shù)中需要使用隨機(jī)數(shù),隨機(jī)數(shù)的可視化廣泛應(yīng)用于工業(yè)、生活等各個領(lǐng)域,例如彩票、保險箱密碼等方面。但現(xiàn)有技術(shù)中,極少涉及隨機(jī)數(shù)的可視化,即未出現(xiàn)將隨機(jī)數(shù)的產(chǎn)生過程通過機(jī)械裝置進(jìn)行直觀展示的技術(shù)。同時,現(xiàn)有技術(shù)也未能將隨機(jī)數(shù)與機(jī)械誤差進(jìn)行結(jié)合,由于機(jī)械誤差本身具有隨機(jī)性,機(jī)械誤差在機(jī)械傳動中造成,而機(jī)械傳動過程是具有直觀性的,用戶可以通過放大的機(jī)械誤差來直觀感受隨機(jī)性。
因此,需要一種新的隨機(jī)數(shù)可視化裝置,來將隨機(jī)數(shù)和機(jī)械誤差進(jìn)行直觀的可視化處理。
技術(shù)實(shí)現(xiàn)要素:
本實(shí)用新型的目的是為了解決現(xiàn)有技術(shù)的隨機(jī)數(shù)發(fā)生器不具有可視化特點(diǎn),不易直觀理解其隨機(jī)性的問題。
隨機(jī)數(shù)可視化裝置包括算盤、一組立柱、控制主體以及電控裝置,其中,每個立柱的一端與算盤的一端連接,立柱的另一端置于支撐面上,所述立柱用于固定所述算盤的位置;所述控制主體設(shè)置在所述算盤的下方,所述控制主體包括具有條形凹槽的底座,所述凹槽內(nèi)設(shè)置有通過直線電機(jī)驅(qū)動的螺桿,所述螺桿上方固定有舵機(jī),所述螺桿用于通過旋轉(zhuǎn)帶動所述舵機(jī)沿著螺桿的方向進(jìn)行移動;所述電控裝置用于產(chǎn)生數(shù)列電信號,并將所述數(shù)列電信號發(fā)送至所述直線電機(jī),以使所述直線電機(jī)控制所述舵機(jī)行進(jìn)與所述數(shù)列電信號相匹配的時長后停止;所述舵機(jī)在與所述算盤的平面垂直的一面設(shè)置有擺臂,所述擺臂用于在根據(jù)所述舵機(jī)的控制進(jìn)行擺動以撥動所述算盤上的算珠,所述算珠的位置用于表示可視化后的隨機(jī)數(shù)的值。
本實(shí)用新型的有益效果為:一、本實(shí)用新型應(yīng)用時間種子原理,產(chǎn)生基本的隨機(jī)數(shù),用于電信號的產(chǎn)生。二、本實(shí)用新型通過單片機(jī)讀取信號,識別信號,應(yīng)用數(shù)學(xué)的二維映射混沌處理,增加了隨機(jī)性。三、本實(shí)用新型用直線電機(jī)讀取電信號,通過電機(jī)和舵機(jī)、算盤的組合利用,直觀地把隨機(jī)數(shù)表現(xiàn)在算盤上。四、本實(shí)用新型應(yīng)用機(jī)械誤差,使電信號與產(chǎn)生的隨機(jī)數(shù)有一定的不同,是原有隨機(jī)數(shù)發(fā)生器從來沒有的,屬于一種新的突破。五、使電控裝置產(chǎn)生的隨機(jī)數(shù)具象化地表現(xiàn)為算盤上的讀數(shù),增加了直觀性,更容易進(jìn)行感性認(rèn)識。
附圖說明
圖1為本實(shí)用新型的隨機(jī)數(shù)可視化裝置的結(jié)構(gòu)圖;
圖2為本實(shí)用新型的直線電機(jī)與舵機(jī)的結(jié)構(gòu)圖;
圖3為本實(shí)用新型的隨機(jī)數(shù)可視化裝置撥動一個算珠的示意圖;
圖4為本實(shí)用新型的實(shí)施例的算珠撥動的示意圖。
具體實(shí)施方式
具體實(shí)施方式一:本實(shí)施方式的隨機(jī)數(shù)可視化裝置,如圖1所示,包括算盤1、一組立柱5、控制主體以及電控裝置4,其中,每個立柱5的一端與算盤的一端連接,立柱5的另一端置于支撐面上,立柱5用于固定算盤1的位置;控制主體設(shè)置在算盤1的下方,控制主體包括具有條形凹槽的底座2,凹槽內(nèi)設(shè)置有通過直線電機(jī)驅(qū)動的螺桿6,螺桿6上方固定有舵機(jī)3,螺桿6用于通過旋轉(zhuǎn)帶動舵機(jī)3沿著螺桿6的方向進(jìn)行移動;電控裝置4用于產(chǎn)生數(shù)列電信號,并將數(shù)列電信號發(fā)送至直線電機(jī),以使直線電機(jī)通過螺桿6控制舵機(jī)3行進(jìn)與數(shù)列電信號相匹配的時長后停止;舵機(jī)3在與算盤1的平面垂直的一面設(shè)置有擺臂31,擺臂31用于在根據(jù)舵機(jī)3的控制進(jìn)行擺動以撥動算盤1上的算珠,算珠的位置用于表示可視化后的隨機(jī)數(shù)的值。
可以理解為,本實(shí)用新型是將初步生成的隨機(jī)數(shù)通過電信號產(chǎn)生,電信號控制直線電機(jī)前進(jìn),在此過程中會產(chǎn)生機(jī)械誤差,使得直線電機(jī)產(chǎn)生的位移具有相對波動值,并且電機(jī)運(yùn)行預(yù)定的時長后,舵機(jī)的擺臂在波動算盤的算珠時,也有相對波動,使得被撥動的算珠可能為不同的值。電信號傳到機(jī)械上后,機(jī)械啟動加速度過大和機(jī)械運(yùn)轉(zhuǎn)不穩(wěn)定、外界誤差影響,會對機(jī)械上的隨機(jī)數(shù)造成不同程度的影響,使結(jié)果隨機(jī)性增強(qiáng)。用上述的方法產(chǎn)生多組隨機(jī)數(shù)體現(xiàn)在算盤上,這樣最終產(chǎn)生的算盤上的讀數(shù)既反映了算法生成的隨機(jī)數(shù),又考慮到了機(jī)械誤差,使得隨機(jī)數(shù)生成器的隨機(jī)性更強(qiáng)。
圖2是本實(shí)用新型的直線電機(jī)與舵機(jī)的結(jié)構(gòu)圖。從圖2中可以看出,舵機(jī)的擺臂具有一個尖端,這個尖端隨著擺臂的擺動可以撥動算盤,而通過設(shè)置擺動的角度不同可以使得撥動算珠的個數(shù)產(chǎn)生變化,進(jìn)而增強(qiáng)隨機(jī)性。
具體實(shí)施方式二:本實(shí)施方式與具體實(shí)施方式一不同的是:電控裝置包括單片機(jī)以及與所述單片機(jī)連接的DS1302芯片,所述DS1302芯片用于產(chǎn)生表示時間種子的電信號,所述單片機(jī)用于將所述表示時間種子的電信號轉(zhuǎn)換為十進(jìn)制數(shù)據(jù),并使用Hemon映射擴(kuò)大所述十進(jìn)制數(shù)據(jù)的隨機(jī)性,得到數(shù)列電信號。
其它步驟及參數(shù)與具體實(shí)施方式一相同。
具體實(shí)施方式三:本實(shí)施方式與具體實(shí)施方式一或二不同的是:舵機(jī)3的擺臂的尖端沿著所述算盤1各個檔的第二算珠與第三算珠的縫隙所形成的直線運(yùn)動。
第一算珠為算盤的每個檔中表示數(shù)字“1”的算珠,第二算珠為算盤的每個檔中表示數(shù)字“2”的算珠,第三算珠為算盤的每個檔中表示數(shù)字“3”的算珠。例如圖1中左數(shù)第9檔被撥上去的算珠為第一算珠,左數(shù)第14檔被撥上去的算珠為第二算珠。
舵機(jī)的擺臂沿著第二算珠和第三算珠的縫隙所確定的直線運(yùn)動,即擺臂有更大的幾率在某一檔撥出數(shù)字“2”,如果發(fā)生機(jī)械誤差,例如擺臂發(fā)生較大程度的擺動,那么也可能撥出數(shù)字“1”或者數(shù)字“3”。
其它步驟及參數(shù)與具體實(shí)施方式一或二相同。
具體實(shí)施方式四:本實(shí)施方式與具體實(shí)施方式一至三之一不同的是:凹槽在沿螺桿6方向的兩側(cè)設(shè)置有限位裝置,用于在舵機(jī)3與限位裝置接觸時,使舵機(jī)3停止行進(jìn),并沿與原行進(jìn)方向相反的方向行進(jìn)。
其它步驟及參數(shù)與具體實(shí)施方式一至三之一相同。
具體實(shí)施方式五:本實(shí)施方式與具體實(shí)施方式一至四之一不同的是:直線電機(jī)2行進(jìn)停止后,所述電控裝置4產(chǎn)生新的數(shù)列電信號,并使所述直線電機(jī)2繼續(xù)行進(jìn)。
即當(dāng)直線電機(jī)從左到右轉(zhuǎn)到接近算盤尾部時,應(yīng)返回運(yùn)動,數(shù)字依然按照走過的算盤珠子計算
其它步驟及參數(shù)與具體實(shí)施方式一至四之一相同。
具體實(shí)施方式六:本實(shí)施方式提供一種隨機(jī)數(shù)生成方法,所述方法是基于具體實(shí)施方式二至五中任意一項(xiàng)隨機(jī)數(shù)可視化裝置實(shí)現(xiàn)的。包括如下步驟:
步驟1)DS1302芯片產(chǎn)生用于產(chǎn)生表示時間種子的電信號,并發(fā)送至單片機(jī);
步驟2)單片機(jī)將表示時間種子的電信號轉(zhuǎn)換為十進(jìn)制數(shù)據(jù),并使用Hemon映射進(jìn)行處理,將得到的數(shù)列電信號發(fā)送至直線電機(jī);
步驟3)直線電機(jī)行進(jìn)與數(shù)列電信號相匹配的時長,并停止;
步驟4)舵機(jī)的擺臂撥動算盤上的算珠;
步驟5)從直線電機(jī)的當(dāng)前位置開始,重復(fù)步驟1)至步驟4),直至重復(fù)次數(shù)達(dá)到預(yù)設(shè)的值;
步驟6)讀取算盤上的讀數(shù)作為隨機(jī)數(shù)。
具體實(shí)施方式七:本實(shí)施方式與具體實(shí)施方式六不同的是:
步驟2)中,使用使用Hemon映射進(jìn)行處理,將得到的數(shù)列電信號具體通過如下公式計算:
yn+1=xn
其中,xn和xn+1分別為第n和n+1次產(chǎn)生的數(shù)列電信號所表示的時間數(shù)值,xn用于表征所述直線電機(jī)將要行進(jìn)的時長;x1為表示時間種子的電信號所對應(yīng)的時間的小時數(shù)值;a為表示時間種子的電信號所對應(yīng)的時間的分鐘數(shù)值;b為表示時間種子的電信號所對應(yīng)的時間的秒鐘數(shù)值;
當(dāng)xn小于0時,取xn的絕對值代替原xn值;當(dāng)xn的位數(shù)大于3時,取xn最后兩位的數(shù)值代替原xn值。
<實(shí)施例1>
本實(shí)施例中將具體描述隨機(jī)數(shù)的產(chǎn)生過程。
第一步,用萬年歷DS1302或其他電子時鐘,產(chǎn)生電子時鐘信號,通過單片機(jī)收集時鐘信號:時間H,分鐘M,秒鐘S。由于時間種子的隨機(jī)性,基本可以判斷為簡單的隨機(jī)種子。
第二步,由于產(chǎn)生的隨機(jī)信號隨機(jī)性不強(qiáng),難以直接變成隨機(jī)電信號,傳到機(jī)械裝置上,所以,本實(shí)用新型為增加數(shù)據(jù)的隨機(jī)性,將產(chǎn)生的時間H,分鐘M,秒鐘S進(jìn)行二維Hemon混沌處理。
yn+1=xn
令x1=H,a=M,b=S,隨之,依次產(chǎn)生x2、x3、x4。
為滿足電信號需要,需要作出以下處理:
1、當(dāng)xn小于0時,取xn的絕對值代替原值。
2、由于xn可能過大,當(dāng)xn位數(shù)大于3時,只取后兩位。
以上算法,可由簡單的語言編程實(shí)現(xiàn),通過第二步,最終產(chǎn)生所需要的x1、x2、x3、x4。
第三步,將產(chǎn)生的數(shù)字x1、x2、x3、x4,作為延時函數(shù)的代入值,使電機(jī)在不同的時間間隔停止后,舵機(jī)撥動算盤,產(chǎn)生不同的數(shù)字。例如,x1=98,x2=57,x3=45,x4=52開始后,電機(jī)轉(zhuǎn)動delay(x1)=5.4秒后停止,舵機(jī)撥動算盤的第九檔的珠子,那么記錄個位數(shù)值為9,電機(jī)繼續(xù)轉(zhuǎn)動,由于機(jī)械誤差和信號干擾,電機(jī)可能轉(zhuǎn)動delay(x2)=2.6秒后停止,從第二次轉(zhuǎn)動開始計時,舵機(jī)撥動算盤的第五檔的珠子,那么記錄十位數(shù)值為5,電機(jī)繼續(xù)轉(zhuǎn)動,由于機(jī)械誤差和信號干擾,電機(jī)可能轉(zhuǎn)動delay(x3)=2.3秒后停止,從第三次轉(zhuǎn)動開始計時,舵機(jī)撥動算盤的第四檔的珠子,那么記錄百位數(shù)值為4,電機(jī)繼續(xù)轉(zhuǎn)動,由于機(jī)械誤差和信號干擾,電機(jī)可能轉(zhuǎn)動delay(x4)=2.4秒后停止,從第四次轉(zhuǎn)動開始計時,舵機(jī)撥動算盤的第五個珠子,那么記錄千位數(shù)值為5,產(chǎn)生一個四位數(shù)5459,作為產(chǎn)生的隨機(jī)數(shù)。即舵機(jī)多次進(jìn)行撥動,每一次撥動到的檔位作為個、十、百、千……的值,例如第一次撥到第6個檔位的算珠,那么個位值就為6。需要注意的是,本實(shí)用新型可以不考慮撥動到某一檔位的哪個算珠,而只考慮撥動到第幾個檔位。
經(jīng)過大量實(shí)驗(yàn),發(fā)現(xiàn)這種方法需要注意以下幾點(diǎn):
(1)延時函數(shù)delay(xn)需要保證,當(dāng)xn=0—99時,必須保證,撥動數(shù)字頻率大概一致,且90左右,要撥動到其第九檔算珠,可以通過單片機(jī)簡單計算出,或通過實(shí)驗(yàn)計算出。
(2)當(dāng)直線電機(jī)從左到右轉(zhuǎn)到接近算盤尾部時,應(yīng)返回運(yùn)動,數(shù)字依然按照走過的算盤珠子計算。
(3)由于當(dāng)直線電機(jī)返回時,會對之前撥動的珠子產(chǎn)生影響,應(yīng)在直線電機(jī)返回之前,手動或機(jī)械撥動,把之前撥動珠子撥回初始狀態(tài)。
(4)由于直線電機(jī)停止在算盤珠的位置不同,前面提到一般可以不考慮撥動到一個檔位的具體某個算珠,也可以考慮到這一點(diǎn),從而進(jìn)一步增加一些隨機(jī)性,因?yàn)楫?dāng)沿著所有檔位的第二個算珠和第三個算珠的縫隙形成的直線而行進(jìn)時,正常情況下擺臂會撥動到第二個算珠,偶爾也會撥動第三個算珠,當(dāng)撥動第三個算珠時,可以將記錄的數(shù)據(jù)加1,同理,當(dāng)撥動第一個算珠時,可以將記錄數(shù)據(jù)減1。例如,如果第一次撥動到第6檔的第二個算珠,那么個位數(shù)的值為6,如果第一次波動到第6檔的第三個算珠,那么可以將個位數(shù)記為7,即將數(shù)據(jù)加1。
圖4示出了撥動到不同算珠時的情況。其中A為撥動第2個算珠,B為撥動第1個算珠。
本實(shí)用新型還可有其它多種實(shí)施例,在不背離本實(shí)用新型精神及其實(shí)質(zhì)的情況下,本領(lǐng)域技術(shù)人員當(dāng)可根據(jù)本實(shí)用新型作(做)出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本實(shí)用新型所附的權(quán)利要求的保護(hù)范圍。