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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

随机种子

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

多數使用隨機數的計算器都有一個輸入端叫做種子。因此種子是用來干什么的?為什么你試圖改變它?你如何知道將它改變成什么?

首先說說隨機。隨機是計算的一個問題,如果你輸入相同的命令將總是以相同的結果終止。使用數學計算器產生真實的隨機數這在數學上被證明是不可能的,但是生成虛擬的隨機數字相當容易。這對于偽隨機數來說不是個壞消息,不像真實的隨機數字,它們可以被多次重復生成,你每次都將得到相同的隨機數??梢园匆笊上嗤碾S機數增加了這些數字序列的可靠度,反過來也讓這些數字更簡單被使用。

偽隨機數是帶有明確特征的數字,明確一點就是當我們談論隨機數時我們確實是在談論數字。單個復數很容易生成,用門羅漫畫的形式表現出來:(xkcd由蘭德爾.門羅所繪制的網絡漫畫)
因此定義偽隨機數的這些特征是什么呢?可能并非十分正確,我總結了如下兩點:

生成數字的序列本身并不可復制。序列中的數字應該被平均分配到數字域中。

大量不同的算法有些比其他好,有些比其他快,有些可以解決特殊問題然而其他的卻只能解決一般問題。GH中的運算法是基于DonaldKnuth的減法法則的標準微軟.NET隨機。

So let’s imagine wewant random integers between 0 and 10. What would a bad randomsequence look like?

因此想象一下我們想要得到從1到10的隨機整數。不好的序列會是怎樣的呢?

§ 3 3 3 3 33 3 3 3 3 3 3 3 3 3 3 3 3 3 3 (about as bad as it gets)

§ 0 1 2 3 45 6 7 8 9 0 1 2 3 4 5 6 7 8 9 (not random at all)非隨機

§ 1 3 2 5 39 1 2 4 2 5 1 1 2 8 1 5 2 3 4 (too many low numbers)

§ 2 8 4 6 09 8 2 4 8 6 4 2 2 5 1 4 8 6 2 (too many even numbers)

So what about goodsequences? Well, here’s a few:好的序列是:

§ 6 9 1 2 04 2 8 5 7 2 9 1 9 2 5 3 1 9 2 (sure, why not)

§ 6 2 5 3 41 9 7 8 0 2 1 6 4 5 8 9 5 0 9 (looks about right)

§ 1 8 5 2 34 5 7 9 5 2 1 0 2 1 0 9 7 6 4 (I suppose)

§ 9 0 6 4 83 1 5 2 7 6 1 4 6 0 1 9 7 5 6 (whatever)

這里有許多有效的偽隨機序列。因此即使我們有很好的偽隨機數生產器,我們仍然可能得到并非完全照我們所想的隨機序列。我們需要的序列越短,越有可能出現統計學的越軌使特殊的序列產生。

輸入種子值。隨機運算器在運行隨機序列之前需要一個種子值。這些種子值總是整數,他們可以是任意32字節整數。每次每個單一的種子值導致的是相同的序列。

不幸的是種子和結果之間沒有清晰地關系。將種子值從5變為6將導致完全不同的隨機序列,兩個非常近似的結果也許是相當不同的種子。因此沒有方法去猜想一個好的種子值,完全是不斷的嘗試。同樣因為這個完全不連續的性質,你不能使用像Galapagos這樣的工具來優化種子值。

如果你尋求有規范特征的偽隨機序列,最終可能必須自己編寫序列運算法則。關于這個的問題請于GH或VB/C#論壇尋求答案。
結論:種子值是定義偽隨機數字精確序列的整數,但是沒有方法提前預知序列是多少,也沒有辦法調整序列僅僅靠改變種子。甚至種子值最小的變化也將導致徹底不同的隨機序列。

事實上這并不可能,A限定的所有數字最終經常進行自我復制。
這僅僅對于足夠長的序列才正確,短的序列多少允許值的聚集。
原文鏈接:http://www.grasshopper3d.com/forum/topics/what-are-random-seed-values

一般計算機的隨機數都是偽隨機數,以一個真隨機數(種子)作為初始條件,然后用一定的算法不停迭代產生隨機數,下面介紹兩種方法:
一般種子可以以當前的系統時間,這是完全隨機的

算法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之間的偽隨機數
該算法的一個缺點是會出現循環。

總結

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

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