日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

随机种子的详解

發布時間:2023/12/31 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 随机种子的详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

什么是隨機種子?

我們知道,隨機數是通過一些復雜的數學算法得到的,那么 隨機種子(Random Seed)就是這些隨機數的初始值。

一般計算機里面產生的隨機數都是偽隨機數。 偽隨機數,也是就一個一直不變的數。

import numpy as npnum = 0 while (num < 5):np.random.seed(0)print(np.random.rand(1,5)) # 得到一個范圍從0到1的 1行5列的隨機數num += 1print('-------------------------')

結果:

由結果可以看出來,這些都是偽隨機數,也就是一直不變的隨機數,所以我們可以通過輸入隨機種子,得到一個初始固定的隨機數。隨機種子的初始值,是一直不變的。

我們把隨機種子的賦值,放到循環外面,意思是只初始化一次

import numpy as npnum = 0 np.random.seed(0) while (num < 5):print(np.random.rand(1,5))num += 1print('-------------------------')

看到,結果就不一樣了,但是初始化第一行的結果還是一樣的,這說明初始值一樣 ,而且你會發現,無論你運行多少遍,有了隨機種子,運行的結果都是一樣的

但我們不需要隨機種子的時候,把隨機種子的賦值注釋掉

import numpy as npnum = 0 #np.random.seed(0) while (num < 5):print(np.random.rand(1,5))num += 1print('-------------------------')

?第一次結果:

?第二次結果:

?

第三次結果:

?

此時結果就是完全隨機,沒有一點章法。

?

所以我總結就是,通過隨機種子,通過一些復雜的數學算法,你可以得到一組有規律的隨機數,而隨機種子就是這個隨機數的初始值。隨機種子相同,得到的隨機數一定也相同。

?

隨機種子計算隨機數的計算方法:

?

一般種子可以以當前的系統時間,這是完全隨機的

算法1:平方取中法。

1)將種子設為X0,并mod 10000得到4位數

2)將它平方得到一個8位數(不足8位時前面補0)

3)取中間的4位數可得到下一個4位隨機數X1

4)重復1-3步,即可產生多個隨機數

這個算法的一個主要缺點是最終它會退化成0,不能繼續產生隨機數。

算法2:線性同余法

1)將種子設為X0,

2)用一個算法X(n+1)=(a*X(n)+b) mod c產生X(n+1)

一般將c取得很大,可產生0到c-1之間的偽隨機數

該算法的一個缺點是會出現循環。

?

參考文獻:

https://baijiahao.baidu.com/s?id=1625366743643510488&wfr=spider&for=pc

https://www.cnblogs.com/subic/p/8454025.html

https://blog.csdn.net/zenghaitao0128/article/details/78556535

https://baike.baidu.com/item/%E9%9A%8F%E6%9C%BA%E7%A7%8D%E5%AD%90/9844665?fr=aladdin

總結

以上是生活随笔為你收集整理的随机种子的详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。