1. <nobr id="easjo"><address id="easjo"></address></nobr>

      <track id="easjo"><source id="easjo"></source></track>
      1. 
        

      2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
      3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>
          貴州做網站公司
          貴州做網站公司~專業!靠譜!
          10年網站模板開發經驗,熟悉國內外開源網站程序,包括DEDECMS,WordPress,ZBlog,Discuz! 等網站程序,可為您提供網站建設,網站克隆,仿站,網頁設計,網站制作,網站推廣優化等服務。我們專注高端營銷型網站,企業官網,集團官網,自適應網站,手機網站,網絡營銷,網站優化,網站服務器環境搭建以及托管運維等。為客戶提供一站式網站解決方案?。?!

          什么是隨機和偽隨機

          來源:互聯網轉載 時間:2024-01-29 08:20:05

          不知道你有沒有參與過公司年會,

          互聯網公司的年會抽獎環節正常都是用自己寫的軟件抽獎的,然后我們經常會看到每年年會期間有些公司會在年會上現場 review抽獎代碼,基本都是覺得他丫的這是不是真的隨機抽獎?

          其實真正的隨機是不存在的,至少在代碼層面不存在,因為隨機數在代碼層面都是用算法來計算,而算法只能通過優化來確保隨機數在某個空間上均勻分布。

          理想的隨機數

          打個比方,如果在0 - 100 里面生成 一萬個隨機數,那么結果應該是這一萬個數均勻分布在 0 - 100 這個區間,也可以理解為每個數出現的次數基本一致。而偽隨機的話就可能出現很多情況了,比如正態分布,隨機數集中在中間的區間。

          如何接近理想的生成隨機數

          為了讓結果盡可能接近理想情況,我們需要讓每一次生成的結果和之前的結果有關聯。

          這里就有個種子的概念,以Java的 Random類來說,生成 Random對象有兩種方式,

          Random r1 = new Random();Random r2 = new Random(100);System.out.println(r1.nextInt(10));System.out.println(r2.nextInt(10));

          第二種就是用種子 100來生成一個隨機對象。

          這里的原理是,Random會用算法把 100 轉換成隨機數區間 0 - 10 中某一個點,之后生成的隨機數都會與上一次結果有關而且呈均勻分布。

          雖然這樣子可以生成接近理想的隨機數,但是也有個嚴重的問題,如果我們用同樣的種子去生成隨機數的話,就可能導致結果是可以預測的。

          種子的選擇

          來看看下面這段代碼,你可以把它放到自己的環境上運行,看結果是不是跟我的一樣。

          import java.util.Random;public class RandomTest {  public static void main(String[] args) {    Random r1 = new Random();    Random r2 = new Random();    Random r3 = new Random(100);    Random r4 = new Random(100);    System.out.println(r1.nextInt(10));    System.out.println(r1.nextInt(10));    System.out.println(r2.nextInt(10));    System.out.println(r2.nextInt(10));    System.out.println("<------------>");    System.out.println(r3.nextInt(10));    System.out.println(r3.nextInt(10));    System.out.println(r4.nextInt(10));    System.out.println(r4.nextInt(10));  }}

          我這邊的輸出結果是

          9320<------------>5050

          可以看看你的代碼在分割線下面生成的隨機數是不是跟我一樣。如果沒有意外的話,你會得到跟我一致的結果。這里的原因就是種子,當選用同樣的種子時,在同樣的算法下,在相同區間中生成的隨機數序列是一致的,也就是說如果年會的抽獎算法用了某一個固定的種子,那么結果早在年會前就確定了。

          所以想要生成一個盡可能完美的結果的話,種子要盡可能的隨性,比如取系統當前時間,再取參與人數取?;蛘呷∮?這樣才能保證隨機數的不確定性。

          標簽:偽隨機-

          網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...

          在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...

          在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...

          成都哪家工作室拍藝術照拍的更好呢?1.木沙英花婚紗攝影工作室地址:嬌子北二路61號馮丹國際地鐵1號線金融城A出口顧客評價:能在沐沙英花拍婚紗照真的超級開心。剛到店的時候,感覺超級驚喜。給我的感覺是,只要是女生,我都會喜歡。2.八點半去照相館地址:較場壩街東方廣場B座停車場入口2單元1207室客戶評價:體驗很棒。提前兩天預約。到達當天,店家會提前打電話確認時間。到了就不用等了,馬上就可以開始化妝。3...

          百威9000v6商業管理軟件使用方法?百威?解壓下載的bw9000ziu.zip地址百威9000商務管理軟件的安裝程序見bw9000ziu程序安裝目錄安裝程序.exe下一步,選擇后臺管理和前臺出納,然后選擇下一步,在“輸入服務器名稱或IP地址”列中輸入測試服務器的域名“windowsce.vicp.net,如下一步:根據向導,繼續下一步,完成軟件安裝后,前臺出納測試可運行桌面“百威9000商用PO...

          16寸平板長寬多少厘米?16英寸板長35.4厘米,寬19.9厘米。16英寸是指筆記本電腦顯示屏的對角線長度,16英寸=40.6cm;根據主流筆記本電腦,筆記本電腦的長寬比為16:9,長:13.95英寸(35.4cm),寬:7.84英寸(19.9cm)。16寸電腦長寬多少?16英寸是指筆記本電腦顯示屏的對角線長度。根據主流筆記本16:9的比例,16英寸是指筆記本的長度為13.95英寸(35.4厘米)...

          TOP
          国产初高中生视频在线观看|亚洲一区中文|久久亚洲欧美国产精品|黄色网站入口免费进人
          1. <nobr id="easjo"><address id="easjo"></address></nobr>

              <track id="easjo"><source id="easjo"></source></track>
              1. 
                

              2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
              3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>