999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Python技術(shù)的自然圖像隨機(jī)數(shù)生成設(shè)計(jì)

2017-11-02 02:24:48張明浩王虹宇張毅寧
電腦與電信 2017年8期
關(guān)鍵詞:物理實(shí)驗(yàn)方法

張明浩 王虹宇 張毅寧

(鞍山師范學(xué)院物理科學(xué)與技術(shù)學(xué)院,遼寧 鞍山 114007)

基于Python技術(shù)的自然圖像隨機(jī)數(shù)生成設(shè)計(jì)

張明浩 王虹宇 張毅寧

(鞍山師范學(xué)院物理科學(xué)與技術(shù)學(xué)院,遼寧 鞍山 114007)

根據(jù)隨機(jī)數(shù)驗(yàn)證圖形散亂無(wú)序這一特征,反演隨機(jī)數(shù)列。大自然中有許多景象,我們從中隨機(jī)提取一幅或多幅圖像。利用Python語(yǔ)言,通過(guò)高斯模糊將黑白圖像的黑白點(diǎn)均勻化,利用斐波那契數(shù)列多次提取等方法,得到一組或多組隨機(jī)數(shù),最后經(jīng)過(guò)蒙特卡洛π驗(yàn)證,證明這組數(shù)是隨機(jī)數(shù)。

斐波那契數(shù)列;蒙特卡洛驗(yàn)證;高斯模糊;隨機(jī)數(shù);Python

1 有關(guān)隨機(jī)數(shù)的基本問(wèn)題

1.1 隨機(jī)數(shù)表需要的理由

目前,數(shù)學(xué)對(duì)隨機(jī)數(shù)(或隨機(jī)序列)仍然沒(méi)有統(tǒng)一定義。真隨機(jī)數(shù)性質(zhì)的一般描述是在隨機(jī)序列無(wú)限長(zhǎng)的情況下具有如下性質(zhì):

(1)均勻分布:一串真隨機(jī)序列滿足均勻分布的統(tǒng)計(jì)特性,如序列的每一位是0或1的概率相等,都為0.5。

(2)不可預(yù)測(cè)性:真隨機(jī)序列的每一位是相互獨(dú)立的,給定序列某一位的值,并不能預(yù)測(cè)或計(jì)算出后一位的值。

基于數(shù)學(xué)算法的偽隨機(jī)數(shù)發(fā)生器實(shí)際上可以產(chǎn)生近似于均勻分布隨機(jī)序列。現(xiàn)代計(jì)算機(jī)算法已經(jīng)可以產(chǎn)生足夠好的偽隨機(jī)數(shù),其周期性已經(jīng)不再是關(guān)鍵問(wèn)題,但是與真隨機(jī)數(shù)相比最大的區(qū)別在于可否對(duì)下次結(jié)果進(jìn)行預(yù)測(cè)。很明顯偽隨機(jī)數(shù)雖然快捷,但是對(duì)于同樣的種子,產(chǎn)生的隨機(jī)序列將會(huì)是相同的,顯然不具有不可預(yù)測(cè)性[1]。

1.2 常見(jiàn)隨機(jī)數(shù)生成方法

常用的產(chǎn)生偽隨機(jī)數(shù)的數(shù)學(xué)算法有線性同余發(fā)生器(linear congruential generator),延遲斐波那契發(fā)生器(lagged Fibonacci generator)和線性反饋移位寄存器(linear feedback shift register)等[2]。

除了基于確定數(shù)學(xué)算法的偽隨機(jī)數(shù)發(fā)生器,還有一類是物理偽隨機(jī)數(shù)發(fā)生器,產(chǎn)生的隨機(jī)數(shù)是來(lái)源于客觀的物理過(guò)程,但客觀的物理過(guò)程并不意味著真隨機(jī)。相對(duì)于數(shù)學(xué)算法,物理偽隨機(jī)數(shù)發(fā)生器的隨機(jī)性兩大特點(diǎn):

一是理論上準(zhǔn)確地描述很多實(shí)際的物理過(guò)程非常困難和復(fù)雜,即便是掌握了物理系統(tǒng)的初值和運(yùn)行規(guī)律,也很難精確地計(jì)算出這些物理過(guò)程將來(lái)的狀態(tài)。

二是周圍環(huán)境對(duì)于物理系統(tǒng)的運(yùn)行產(chǎn)生影響,比如兩個(gè)相同的器件由于溫度或電壓等條件的影響,系統(tǒng)開(kāi)始運(yùn)行的初值可能不同,這也導(dǎo)致了預(yù)測(cè)的困難。

由于本質(zhì)上很多物理過(guò)程并不是真隨機(jī)的,理論上并不滿足不可預(yù)測(cè)性的要求。所以產(chǎn)生的隨機(jī)數(shù)為偽隨機(jī)數(shù)。其研究設(shè)計(jì)過(guò)程一般是先選取一個(gè)物理世界的真隨機(jī)源,然后選用特定的方法從中提取真隨機(jī)數(shù)。物理真隨機(jī)數(shù)發(fā)生器具有真正的隨機(jī)性和不可預(yù)知性,其采樣的真實(shí)物理現(xiàn)象有多種[3],如:放射性衰變,電子電路噪聲,大氣噪聲,電子振蕩器的頻率抖動(dòng),激光混沌,光子相位噪聲,光量子的偏振等。

1.3 常用隨機(jī)數(shù)基本檢驗(yàn)方法

常用的基本檢驗(yàn)方法有:頻數(shù)檢驗(yàn),序列檢驗(yàn),撲克檢驗(yàn),游程檢驗(yàn)和自相關(guān)檢驗(yàn)等,但目前并不存在真正意義上的真隨機(jī)性的檢測(cè)方法,這是因?yàn)檎骐S機(jī)性是基于無(wú)限長(zhǎng)序列的,所以數(shù)學(xué)統(tǒng)計(jì)上的檢測(cè)是無(wú)法完成的。目前工業(yè)上常用的統(tǒng)計(jì)檢測(cè)一般是基于固定長(zhǎng)度隨機(jī)序列的(一般是1 Gbit),如 ENT(pseudo-random number sequence test program),NIST-STS(a statistical test suite for the validation of random number generators and pseudo random number generators for cryptographic applications),Diehard(a battery of tests of randomness)等[4]。其中ENT檢驗(yàn)為國(guó)際上通用的隨機(jī)數(shù)檢測(cè)程序,將給出產(chǎn)生的隨機(jī)序列的數(shù)學(xué)平均值,每比特熵值,χ檢測(cè)值,Monte Carlo方法計(jì)算得到的π值,以及序列相關(guān)系數(shù)。

2 基于Python技術(shù)的自然圖像隨機(jī)數(shù)生成的過(guò)程

2.1 設(shè)計(jì)思路及原理說(shuō)明

首先,從自然界中提取一幅或多幅圖像,可以假定一般情況下,這一圖像不具有規(guī)律重復(fù)特征,然后將其轉(zhuǎn)化為黑白圖像;轉(zhuǎn)化過(guò)程中,利用高斯模糊將黑白圖像中的黑白點(diǎn)均勻化,進(jìn)而轉(zhuǎn)化成0-1序列;再將其轉(zhuǎn)化為一個(gè)大十進(jìn)制數(shù),其后再?gòu)倪@個(gè)十進(jìn)制中按斐波那契序列提取一定數(shù)量的數(shù)列作為一個(gè)十進(jìn)制數(shù)。依次改變提取起始位,經(jīng)過(guò)循環(huán)多次提取,獲得一組隨機(jī)數(shù)。

2.2 選擇Python相關(guān)技術(shù)的原因

Python是一種面向?qū)ο蟆⒅С謩?dòng)態(tài)語(yǔ)義、內(nèi)置高級(jí)數(shù)據(jù)結(jié)構(gòu)、語(yǔ)法簡(jiǎn)潔優(yōu)美、易于擴(kuò)展的解釋型腳本語(yǔ)言(script language)[5]。OpenCV(Open Source Computer Vision Library)是一個(gè)基于(開(kāi)源)發(fā)行的跨平臺(tái)計(jì)算機(jī)視覺(jué)庫(kù),可以運(yùn)行在Linux、Windows和Mac OS操作系統(tǒng)上。它具有輕量級(jí)且高效的特點(diǎn)——由一系列C函數(shù)和少量C++類構(gòu)成,同時(shí)提供了Python、Ruby、MATLAB等語(yǔ)言的接口,提供圖像處理和計(jì)算機(jī)視覺(jué)方面的很多通用算法1[6]。因此,我們將二者結(jié)合進(jìn)行圖像處理。

2.3 圖像的二值處理

利用OpenCV工具包對(duì)圖像進(jìn)行二值處理十分方便,圖像處理前后如圖1所示,其過(guò)程如下:

im_gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)#用灰度模式打開(kāi)要處理的圖像

retval,im_at_fixed=cv2.threshold(im_gray,50,255,cv2.THRESH_BINARY)#將50-255之間的灰度值作為圖像轉(zhuǎn)換的閾值

im_at_gaussian=cv2.adaptiveThreshold(im_gray,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH_BINARY,5,7)#對(duì)圖像進(jìn)行高斯模糊,保證0、1值均勻分布

圖1 像處理前后原圖與灰度圖

2.4 圖像的數(shù)值轉(zhuǎn)化

進(jìn)一步將黑白圖像轉(zhuǎn)化成0-1序列,存儲(chǔ)到文件“num.txt”中。

num=""

for i in range(img.shape[0]):#對(duì)圖像值的二維數(shù)組進(jìn)行遍歷

for j in range(img.shape[1]):

if img[i][j]>100:num+="1"#將高于100灰度值定為1,否則為0

else:num+="0"

f=file("num.txt","a")#將10序列轉(zhuǎn)化為字符型存儲(chǔ)到“num.txt”文件中

f.write(str(int(num,2)))

2.5 隨機(jī)數(shù)生成

f=open("num.txt")#打開(kāi)“num.txt”文件

mystr=f.read()#將“num.txt”文件中的0-1序列讀出

f.close()

n=len(mystr)-index[-1]#得到10序列長(zhǎng)度

index=[1,2,3,5,8,13,21,33,54,87]#斐波那契數(shù)列

num=[0]*n

for i in range(n):

mynum=""

for j in range(len(index)):

mynum+=mystr[i+index[j]]#以斐波那契數(shù)列為下標(biāo)獲得一個(gè)數(shù)組成的字符

num[i]=float(int(mynum)/10000000000.00)#將下標(biāo)獲得的字符變成浮點(diǎn)小數(shù),經(jīng)循環(huán)后變成數(shù)組

fo=open("newnum.csv","w");fo.write("random, ")#將浮點(diǎn)小數(shù)數(shù)組變成字符存儲(chǔ)到"newnum.csv"文件中

for i in range(n):fo.write(str(num[i])+","+" ");fo.close()

3 蒙特卡洛π驗(yàn)證

蒙特卡羅方法是以概率和統(tǒng)計(jì)理論方法為基礎(chǔ)的計(jì)算方法[7]。認(rèn)為平面系上的一個(gè)邊長(zhǎng)為1的正方形及其內(nèi)部的一個(gè)形狀不規(guī)則的“圖形”,向該正方形“隨機(jī)地”投擲N個(gè)點(diǎn),有M個(gè)點(diǎn)落于“圖形”內(nèi),則該“圖形”的面積近似為M/N。而這個(gè)圖形接近圓,其面積為π。實(shí)現(xiàn)代碼如下:

import pylab as plt#加載pylab繪圖包

incount=0;count=100000;x=[];y=[];

for i in range(count):x.append(num[i]);y.append(num[count+i])#將小數(shù)數(shù)組賦給蒙特卡洛點(diǎn)變量x,y

if(x[i]**2+y[i]**2)<1:incount+=1#如果x,y對(duì)應(yīng)的點(diǎn)在單位元內(nèi),計(jì)數(shù)加1

plt.scatter(x,y,s=0.1,edgecolors='none')#匯出點(diǎn)圖

plt.text(-0,-0.05,"pi="+str(4.0*incount/count))#標(biāo)記蒙特卡洛比值,并和π做比較

plt.text(-0,-0.10,"count="+str(count));plt.show()

圖2 蒙特卡洛π驗(yàn)證圖

4 多次實(shí)驗(yàn)結(jié)果π值統(tǒng)計(jì)

我們進(jìn)行簡(jiǎn)單隨機(jī)抽樣100次,實(shí)驗(yàn)結(jié)果π值如下:

圖3 實(shí)驗(yàn)結(jié)果π值統(tǒng)計(jì)圖

在上述100個(gè)數(shù)據(jù)中,最小值為3.12704,最大值為3.15249,平均值為3.14076,標(biāo)準(zhǔn)誤為0.00557。在圖3中,橫坐標(biāo)的值為實(shí)驗(yàn)數(shù)據(jù)的數(shù)值,縱坐標(biāo)的值為統(tǒng)計(jì)數(shù)量。根據(jù)圖3我們可以得出:左側(cè)的直方圖顯示,這些數(shù)據(jù)圍繞π這一數(shù)值緊密聚類,大體上呈現(xiàn)正態(tài)分布,處于穩(wěn)定狀態(tài)。中間的概率密度圖顯示,這些數(shù)據(jù)的范圍無(wú)限接近于π值,并且越接近π值,概率越高。右側(cè)的累計(jì)曲線顯示,在π值附近分布的比重最大。根據(jù)上述結(jié)果,我們可以看出,實(shí)際數(shù)值是與理論數(shù)值π值非常接近的,也就代表著我們這個(gè)實(shí)驗(yàn)的準(zhǔn)確性。

表1 實(shí)驗(yàn)結(jié)果π值

5 自然圖像隨機(jī)數(shù)生成特點(diǎn)

自然圖像隨機(jī)數(shù)生成器的設(shè)計(jì)有其他實(shí)驗(yàn)不可比擬的優(yōu)勢(shì):首先,取材方便,一幅自然圖片就可以,甚至可以是一個(gè)人臉照片;其次,生成速度快,利用計(jì)算機(jī)程序直接操作處理,沒(méi)有模數(shù)轉(zhuǎn)換過(guò)程,不受外界變量控制;再則,成本低,幾乎沒(méi)有實(shí)驗(yàn)器材,得到的是優(yōu)于數(shù)學(xué)算法的隨機(jī)數(shù)。最為重要的是個(gè)性化特點(diǎn)明顯,調(diào)整不同的照片,就可以提取不同的序列號(hào),確保唯一性。

[1]Aj's Blog.科普:什么是隨機(jī)數(shù)[EB/OL].https://www.6zou.net/docs/what_is_random.html.2016-6-10.

[2]郭弘,劉鈺,黨安紅,等.物理真隨機(jī)數(shù)發(fā)生器[J].科學(xué)通報(bào),2009(23):3651-3657.

[3]于全福.基于量子效應(yīng)的隨機(jī)數(shù)產(chǎn)生研究[D].北京:北京大學(xué),2013.

[4]知乎.如何評(píng)價(jià)一個(gè)偽隨機(jī)數(shù)生成算法的優(yōu)劣[EB/OL].https://www.zhihu.com/question/20222653.2016-6-10.

[5]鐘志強(qiáng).基于Python語(yǔ)言的大學(xué)物理實(shí)驗(yàn)數(shù)據(jù)處理方法研究[J].鞍山師范學(xué)院學(xué)報(bào),2016,18(2):77-81.

[6]李國(guó)軍.?dāng)?shù)字圖像處理的一種新方法[J].鞍山師范學(xué)院學(xué)報(bào),2016,18(2):69-73.

[7]百度百科.蒙特卡洛[EB/OL].http://baike.baidu.com.2015-6-10.

Design of Random Number Generation of Natural Image Based on Python

Zhang Minghao Wang Hongyu Zhang Yining
(Anshan Normal University,Anshan 114007,Liaoning)

Random number has the characteristics of disorder and scatter.Based on this,the random series is retrieved.We can randomly extract images from the nature.This paper uses Gauss fuzzy to homogenize the black points and white points in the binary images with Python language,and uses the Fibonacci sequence for extraction to obtain groups of random numbers.Finally,the Monte Carlo test shows that the number is random.

Fibonacci sequence;Monte Carlo method;Gauss blur;random number;Python

TN918.1 文獻(xiàn)識(shí)別碼:A

1008-6609(2017)08-0013-03

張明浩(1996-),男,天津人,本科,研究方向?yàn)殡娮有畔⒖茖W(xué)與技術(shù)。

2016年遼寧省大學(xué)生創(chuàng)新與創(chuàng)業(yè)項(xiàng)目,機(jī)械隨機(jī)數(shù)生成器的設(shè)計(jì)與實(shí)驗(yàn)與真隨機(jī)數(shù)表的生成;編號(hào):201610169025。

猜你喜歡
物理實(shí)驗(yàn)方法
記一次有趣的實(shí)驗(yàn)
只因是物理
井岡教育(2022年2期)2022-10-14 03:11:44
處處留心皆物理
做個(gè)怪怪長(zhǎng)實(shí)驗(yàn)
三腳插頭上的物理知識(shí)
NO與NO2相互轉(zhuǎn)化實(shí)驗(yàn)的改進(jìn)
實(shí)踐十號(hào)上的19項(xiàng)實(shí)驗(yàn)
太空探索(2016年5期)2016-07-12 15:17:55
用對(duì)方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
捕魚(yú)
主站蜘蛛池模板: 国产中文在线亚洲精品官网| 爽爽影院十八禁在线观看| 国产成人亚洲毛片| 91福利国产成人精品导航| 中文字幕人成人乱码亚洲电影| 欧美福利在线观看| 欧美无遮挡国产欧美另类| 97国产在线视频| 在线国产毛片手机小视频| 欧美一级高清免费a| 精品国产自| 亚洲女同一区二区| 国产靠逼视频| 亚洲最大福利视频网| 无码一区中文字幕| 欧美色99| a色毛片免费视频| 一级成人a毛片免费播放| 国产a网站| 亚洲最大福利网站| 69视频国产| 99视频在线观看免费| 美女亚洲一区| 国产成人高精品免费视频| 亚洲国产欧美国产综合久久| 91精品专区国产盗摄| 制服丝袜亚洲| 99热线精品大全在线观看| 538精品在线观看| 久久久91人妻无码精品蜜桃HD| 日本三级欧美三级| 亚洲国产成人麻豆精品| 再看日本中文字幕在线观看| 亚洲日韩Av中文字幕无码| 国产视频资源在线观看| 国产无码网站在线观看| 91最新精品视频发布页| 香蕉视频在线观看www| 亚洲丝袜第一页| 午夜性爽视频男人的天堂| 九九香蕉视频| 成人国产小视频| 亚洲高清资源| 波多野结衣视频一区二区| 强奷白丝美女在线观看| 四虎永久免费地址| 国产精品成| 欧美精品在线看| 亚卅精品无码久久毛片乌克兰| 综合人妻久久一区二区精品 | 国产麻豆91网在线看| 国产人在线成免费视频| 亚洲熟妇AV日韩熟妇在线| 91精品专区国产盗摄| 亚洲福利视频网址| 青青热久麻豆精品视频在线观看| 天堂岛国av无码免费无禁网站| 天天色天天综合网| 国产特级毛片aaaaaaa高清| 国产91丝袜在线播放动漫| 免费在线观看av| 亚洲无码精彩视频在线观看| 国产精品极品美女自在线网站| 亚洲人人视频| 亚洲天堂视频在线观看免费| 少妇精品在线| 亚洲成人网在线播放| 嫩草影院在线观看精品视频| 美女一区二区在线观看| 免费观看欧美性一级| 国产成人精品日本亚洲| 成人亚洲国产| AV在线麻免费观看网站| 多人乱p欧美在线观看| 欧美一级夜夜爽www| 青青国产在线| 国产69精品久久久久孕妇大杂乱 | 国产精品浪潮Av| 亚洲香蕉久久| 波多野结衣在线se| 狠狠操夜夜爽| 亚洲香蕉久久|