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ú)
主站蜘蛛池模板: 都市激情亚洲综合久久| 欧美一级专区免费大片| 日本欧美午夜| www.99在线观看| 亚洲黄色网站视频| 91久久性奴调教国产免费| 国产AV无码专区亚洲精品网站| 婷婷六月综合网| 成人久久精品一区二区三区| 亚洲伦理一区二区| 国产一区亚洲一区| 第一区免费在线观看| 亚洲国产精品一区二区高清无码久久| 狠狠色香婷婷久久亚洲精品| 国产成人福利在线| 另类欧美日韩| 热99精品视频| 午夜视频日本| 国内精品视频| 9cao视频精品| 丝袜无码一区二区三区| 暴力调教一区二区三区| 免费av一区二区三区在线| 国产91视频免费| 青青草原国产| 一区二区三区四区在线| 午夜毛片福利| 欧洲亚洲欧美国产日本高清| 亚洲综合香蕉| 亚洲综合中文字幕国产精品欧美| 久久网欧美| 一级做a爰片久久免费| 亚洲一区二区三区国产精品| 亚洲 成人国产| 九九精品在线观看| a级毛片免费看| 激情国产精品一区| 无码专区国产精品一区| 国产乱人乱偷精品视频a人人澡| 色香蕉影院| yjizz视频最新网站在线| 播五月综合| 超薄丝袜足j国产在线视频| 国产99视频免费精品是看6| 午夜a级毛片| 国产激情在线视频| 国产凹凸一区在线观看视频| 国产不卡网| 国产一级无码不卡视频| 久久综合九九亚洲一区| 啪啪永久免费av| 狠狠操夜夜爽| 中文字幕亚洲无线码一区女同| 91精品专区国产盗摄| 亚洲一区无码在线| 国产亚洲欧美在线专区| 91久久国产综合精品女同我| 中文字幕在线欧美| 小说区 亚洲 自拍 另类| 国产xx在线观看| 久视频免费精品6| 亚洲一区黄色| 免费A级毛片无码免费视频| 日韩乱码免费一区二区三区| 亚洲欧美日韩另类在线一| 9啪在线视频| 亚洲欧美日韩中文字幕一区二区三区| 国产成人一区| 亚洲三级色| 国产精品一区在线麻豆| 青草娱乐极品免费视频| 日韩精品亚洲人旧成在线| 国产欧美视频一区二区三区| 国产精品乱偷免费视频| 亚洲天堂日韩av电影| 91人妻在线视频| 18禁黄无遮挡网站| 自慰高潮喷白浆在线观看| 国产极品粉嫩小泬免费看| 亚洲福利片无码最新在线播放| 麻豆精品在线视频| 久久久久亚洲av成人网人人软件|