成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

漫話:如何給女朋友解釋滅霸的指響并不是真隨機(jī)"消滅"半數(shù)宇宙人口的?

WalkerXu / 1700人閱讀

摘要:軟件實現(xiàn)的是偽隨機(jī)數(shù)。有限狀態(tài)機(jī)不能產(chǎn)生真正的隨機(jī)數(shù)的。復(fù)聯(lián)中,滅霸打了指響之后,復(fù)仇者聯(lián)盟中存活和死亡的名單其實并不是隨機(jī)的??梢?,滅霸的指響抹除過程并不是隨機(jī)的。綜上,滅霸的指響抹除過程不符合隨機(jī)性不可預(yù)測性以及不可復(fù)現(xiàn)性。


周末,陪女朋友去電影院看了《復(fù)仇者聯(lián)盟4:終局之戰(zhàn)》,作為一個漫威粉三個小時看的是意猶未盡。出來之后,準(zhǔn)備和女朋友聊一聊漫威這十年。

在《復(fù)仇者聯(lián)盟》電影中,滅霸畢生都有一個目標(biāo),那就是通過抹除一半的生命來維持宇宙的平衡。

并且,滅霸還說,這個抹除過程是:隨機(jī)性的、不夾私情、絕對公平、無論貴賤。

那么,到底什么是隨機(jī)?他所謂的隨機(jī)真的如他所說是不夾私情、絕對公平以及無論貴賤的嗎?

隨機(jī)性

隨機(jī)性這個詞是用來表達(dá)目的、動機(jī)、規(guī)則或一些非科學(xué)用法的可預(yù)測性的缺失。一個隨機(jī)的過程是一個不定因子不斷產(chǎn)生的重復(fù)過程。

提到隨機(jī)性,不得不提的就是隨機(jī)數(shù),隨機(jī)數(shù)在計算機(jī)應(yīng)用中使用的比較廣泛,最為熟知的便是在通信安全和現(xiàn)代密碼學(xué)等領(lǐng)域中的應(yīng)用。

隨機(jī)數(shù)分為真隨機(jī)數(shù)和偽隨機(jī)數(shù),我們程序中使用的基本都是偽隨機(jī)數(shù)。

真隨機(jī)數(shù),通過物理實驗得出,比如擲錢幣、骰子、轉(zhuǎn)輪、使用電子元件的噪音、核裂變等。需要滿足隨機(jī)性、不可預(yù)測性、不可重現(xiàn)性。

偽隨機(jī)數(shù),通過一定算法和種子得出。軟件實現(xiàn)的是偽隨機(jī)數(shù)。

只要這個隨機(jī)數(shù)是由確定算法生成的,那就是偽隨機(jī)。只能通過不斷算法優(yōu)化,使你的隨機(jī)數(shù)更接近隨機(jī)。

有限狀態(tài)機(jī)不能產(chǎn)生真正的隨機(jī)數(shù)的。所以,現(xiàn)代計算機(jī)中,無法通過一個純算法來生成真正的隨機(jī)數(shù)。無論是哪種語言,單純的算法生成的數(shù)字都是偽隨機(jī)數(shù),都是由可確定的函數(shù)通過一個種子,產(chǎn)生的偽隨機(jī)數(shù)。

為啥滅霸并不公平?

前面我們提到過,真隨機(jī)數(shù)要滿足隨機(jī)性、不可預(yù)測性、不可重現(xiàn)性。

我們按照這三個性質(zhì)逐一分析下,看看滅霸到底是不是公平的。

隨機(jī)性

隨機(jī)性,指的是不存在統(tǒng)計學(xué)偏差,是完全雜亂的數(shù)列。

復(fù)聯(lián)3中,滅霸打了指響之后,復(fù)仇者聯(lián)盟中存活和死亡的名單其實并不是隨機(jī)的。其中很多對CP都是殺1留1的。如鋼鐵俠——蜘蛛俠、美隊——冬兵、火箭浣熊——格魯特、蟻人——黃蜂女等。

而且,還有一點就是,如果真的是隨機(jī)性的話,那么滅霸自己也是有一定的概率會被抹除的,但是,他早就知道自己不會被抹除,并且已經(jīng)制定好了退休計劃。

并且,在復(fù)聯(lián)3中,奇異博士用時間寶石和滅霸換了鋼鐵俠的生命,說明滅霸其實是選擇性的進(jìn)行抹除的。

可見,滅霸的指響抹除過程并不是隨機(jī)的。

不可預(yù)測性

不可預(yù)測性,指的是不能從過去的數(shù)列推測出下一個出現(xiàn)的數(shù)。

這一點了解電影的朋友應(yīng)該都知道,奇異博士曾經(jīng)利用時間寶石穿越了時空,預(yù)測了未來,并看到了14000605種可能。

可見,滅霸的指響抹除過程并不是不可預(yù)測的。

不可重現(xiàn)性

不可重現(xiàn)性,除非將數(shù)列本身保存下來,否則不能重現(xiàn)相同的數(shù)列。

在復(fù)聯(lián)3中,鋼鐵俠問奇異博士,14000605種可能中,勝利的有多少種。奇異博士回答:1種。

在復(fù)聯(lián)4中,最后奇異博士對鋼鐵俠比了下面這樣一個手勢。說明,他看到的那唯一一種勝利的可能要復(fù)現(xiàn)了。

可見,滅霸的指響抹除過程并不是不可復(fù)現(xiàn)的。

綜上,滅霸的指響抹除過程不符合隨機(jī)性、不可預(yù)測性以及不可復(fù)現(xiàn)性。所以,滅霸的指響抹除過程并不是真正的隨機(jī)的。

通過現(xiàn)象來看,滅霸的抹除操作很可能只是通過簡單的分層抽樣實現(xiàn)的。簡單操作過程如下:

1、把需要特殊處理,不做抹除的人的DNA多帶帶從所有物種的DNA庫中識別出來,并保存到緩存中。

2、根據(jù)不同的條件把DNA庫中的所有生命體劃分成若干區(qū)塊,如地球人、阿斯加德人等。把他們的DNA信息保存到不同的數(shù)據(jù)庫中。在遍歷的過程中,如果遇到緩存中已有的數(shù)據(jù),則跳過。

3、再根據(jù)物種多樣性,如性別、年齡段、職業(yè)等把同一個分庫中的數(shù)據(jù)分別劃分到不同的表中,保證每一張分表中都包含了完整的物種多樣性。

4、遍歷所有數(shù)據(jù)庫,按順序的刪除每個數(shù)據(jù)庫中一半的分表。如地球人的數(shù)據(jù)庫中共有1024張表,只保留512張即可。

5、再把緩存中的數(shù)據(jù)同步到數(shù)據(jù)庫中。

這樣,在后面需要復(fù)活這些人的時候,只需要找到數(shù)據(jù)庫的Binlog,把數(shù)據(jù)重新寫入數(shù)據(jù)庫就行了。

真隨機(jī)數(shù)生成器

真正的隨機(jī)數(shù)是使用物理現(xiàn)象產(chǎn)生而不是計算機(jī)程序產(chǎn)生的。生成隨機(jī)數(shù)的設(shè)備我們稱之為真隨機(jī)數(shù)生成器。

這樣的設(shè)備通常是基于一些能生成低等級、統(tǒng)計學(xué)隨機(jī)的“噪聲”信號的微觀現(xiàn)象,如熱力學(xué)噪聲、光電效應(yīng)和量子現(xiàn)象。

從某種程度上來說,基于經(jīng)典熱噪聲的隨機(jī)數(shù)芯片讀取當(dāng)前物理環(huán)境中的噪聲,并據(jù)此獲得隨機(jī)數(shù)。這類裝置相對于基于軟件算法的實現(xiàn),由于環(huán)境中的變量更多,因此更難預(yù)測。

然而在牛頓力學(xué)的框架下,即使影響隨機(jī)數(shù)產(chǎn)生的變量非常多,但在每個變量的初始狀態(tài)確定后,整個系統(tǒng)的運行狀態(tài)及輸出在原理上是可以預(yù)測的,因此這一類裝置也是基于確定性的過程,只是某種更難預(yù)測的偽隨機(jī)數(shù)。

但是,量子力學(xué)的發(fā)現(xiàn)從根本上改變了這一局面,因為其基本物理過程具有經(jīng)典物理中所不具有的內(nèi)稟隨機(jī)性,從而可以制造出真正的隨機(jī)數(shù)產(chǎn)生器。

據(jù)美國國家標(biāo)準(zhǔn)與技術(shù)研究院(NIST)官網(wǎng)消息,該機(jī)構(gòu)研究人員在2018年4月出版的《自然》雜志上撰文指出,他們開發(fā)出一種新方法,可生成由量子力學(xué)保證的隨機(jī)數(shù)字。新技術(shù)超越了此前獲得隨機(jī)數(shù)字的所有方法,得到了“真正的隨機(jī)數(shù)字”,有助增強(qiáng)密碼系統(tǒng)的安全性。(原文地址:https://www.nature.com/articles/s41586-018-0019-0.epdf )

NIST數(shù)學(xué)家彼特·比爾霍斯特進(jìn)一步解釋說:“諸如翻轉(zhuǎn)硬幣之類的情況似乎是隨機(jī)的,但如果能看到硬幣確切的下落路徑,最終結(jié)果也是可以預(yù)測的。因此,很難保證給定經(jīng)典來源真正不可預(yù)測。量子力學(xué)在產(chǎn)生隨機(jī)性方面表現(xiàn)更好,量子隨機(jī)是真正的隨機(jī),因為對處于‘疊加’狀態(tài)的量子粒子進(jìn)行測量,得到的結(jié)果基本上是不可預(yù)測的?!?/p>

在復(fù)聯(lián)4中,也有很多和量子物理有關(guān)的知識,甚至最終可以扭轉(zhuǎn)乾坤也是依靠的量子領(lǐng)域。漫威電影的宗旨可以高度概括成以下四句話:遇事不決,量子力學(xué)。 解釋不通,穿越時空。 篇幅不夠,平行宇宙。 定律不足,高維人族。

Java中的隨機(jī)數(shù)生成器

Java中生成隨機(jī)數(shù)還是比較簡單的,Java提供了很多種API可以供開發(fā)者使用。

通過時間獲取

在Java中,可以通過System.currentTimeMillis()來獲取當(dāng)前時間毫秒數(shù):

final long l = System.currentTimeMillis();

若要獲取指定范圍的數(shù)字,只需要對數(shù)字進(jìn)行取模就行了,如下方法可以獲得0-99的隨機(jī)數(shù):

final long l = System.currentTimeMillis();
final int i = (int)( l % 100 );

Math.random()

通過Math.random()可以返回0(包含)到1(不包含)之間的double值。使用方法如下:

final double d = Math.random();

若要獲取int類型的整數(shù),只需要將上面的結(jié)果轉(zhuǎn)行成int類型即可。比如,獲取[0, 100)之間的int整數(shù)。方法如下:

final double d = Math.random();
final int i = (int)(d*100);

Random類

Java提供的偽隨機(jī)數(shù)發(fā)生器有java.util.Random類和java.util.concurrent.ThreadLocalRandom類。

Random類采用AtomicLong實現(xiàn),保證多線程的線程安全性,但正如該類注釋上說明的,多線程并發(fā)獲取隨機(jī)數(shù)時性能較差。

多線程環(huán)境中可以使用ThreadLocalRandom作為隨機(jī)數(shù)發(fā)生器,ThreadLocalRandom采用了線程局部變量來改善性能,這樣就可以使用long而不是AtomicLong,此外,ThreadLocalRandom還進(jìn)行了字節(jié)填充,以避免偽共享。

如使用Random獲取[0, 100)之間的int整數(shù),方法如下:

Random random = new Random();
int i2 = random.nextInt(100);

強(qiáng)隨機(jī)數(shù)發(fā)生器

強(qiáng)隨機(jī)數(shù)發(fā)生器依賴于操作系統(tǒng)底層提供的隨機(jī)事件。強(qiáng)隨機(jī)數(shù)生成器的初始化速度和生成速度都較慢,而且由于需要一定的熵累積才能生成足夠強(qiáng)度的隨機(jī)數(shù),所以可能會造成阻塞。熵累積通常來源于多個隨機(jī)事件源,如敲擊鍵盤的時間間隔,移動鼠標(biāo)的距離與間隔,特定中斷的時間間隔等。所以,只有在需要生成加密性強(qiáng)的隨機(jī)數(shù)據(jù)的時候才用它。

Java提供的強(qiáng)隨機(jī)數(shù)發(fā)生器是java.security.SecureRandom類,該類也是一個線程安全類,使用synchronize方法保證線程安全,但jdk并沒有做出承諾在將來改變SecureRandom的線程安全性。因此,同Random一樣,在高并發(fā)的多線程環(huán)境中可能會有性能問題。

這個鍋,研發(fā)人員不背!?。?/p>

根據(jù)我的猜想。對于無限手套這個產(chǎn)品,產(chǎn)品經(jīng)理最初的需求可能只是滿足使用者的一個愿望而已,而幾顆寶石就像是七龍珠一樣,集齊之后打個指響就可以實現(xiàn)愿望。

開發(fā)者只是提供了一個可以滿足愿望的API接口,參數(shù)是一個Callback,具體做什么事情,完全是使用者傳進(jìn)來的想法而已。就像滅霸要抹除一半的生命、綠巨人想要把被抹掉的人救回來、而鋼鐵俠只是想把壞人抹掉而已。

最后,Tony, Love You 3000 Times.

參考資料:

https://www.cnblogs.com/skywang12345/p/3341423.html

https://www.zhihu.com/question/277121161 http://www.nsfc.gov.cn/csc/20340/20343/30636/index.html

http://sh.people.com.cn/n2/2018/0413/c134768-31460133.html



文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/7338.html

相關(guān)文章

  • 復(fù)仇者聯(lián)盟誰才是絕對 C 位?Python分析9萬條數(shù)據(jù)告訴你答案

    摘要:數(shù)據(jù)庫文件已經(jīng)超過了了。復(fù)聯(lián)從開始便是漫威宇宙各路超級英雄的集結(jié),到現(xiàn)在的第部,更是全英雄的匯聚。所以,滅霸出現(xiàn)的次數(shù)居然高于了鋼鐵俠。情感分析,又稱為意見挖掘傾向性分析等。 showImg(https://segmentfault.com/img/remote/1460000019095022); 作者 | 羅昭成責(zé)編 | 唐小引 《復(fù)聯(lián) 4》國內(nèi)上映第十天,程序員的江湖里開始流傳這...

    shiweifu 評論0 收藏0
  • 漫話如何朋友解釋什么是策略模式?

    摘要:策略策略,指的是可以實現(xiàn)目標(biāo)的方案集合,在某些特定情況下,策略之間是可以相互替換的。如何計算金額我們先拿點外賣中會員折扣活動舉例子來說明一下吧。這就是策略模式。策略模式提供了管理相關(guān)的算法族的辦法。showImg(https://user-gold-cdn.xitu.io/2019/5/13/16aaf673fde1b546);?周末無事,窩在家里面看《權(quán)力的游戲第八季》,看的很是津津有味,...

    fancyLuo 評論0 收藏0
  • 十分鐘實現(xiàn)滅霸打響指灰飛煙滅效果

    摘要:全部文章列表從模塊化到私有倉庫搭建十分鐘實現(xiàn)滅霸打響指灰飛煙滅的效果是時候開發(fā)你自己的擴(kuò)展插件了看過復(fù)仇者聯(lián)盟的都知道,滅霸作為計劃生育政策的堅定支持者和執(zhí)行者,一個響指清除了宇宙中二分之一的生命。電影中被清除的生命灰飛煙滅的鏡頭很是酷炫,所以在復(fù)聯(lián)4上映后,那個不存在的網(wǎng)站google,推出了一個彩蛋,如果在搜索框搜索滅霸,會出現(xiàn)一個手套的按鈕,點擊后會讓網(wǎng)頁搜索結(jié)果消失一半。 showI...

    Wildcard 評論0 收藏0
  • 無限手套說起

    摘要:前兩天看到搜索有個彩蛋,搜索滅霸或者,點擊右邊的無限手套觸發(fā)彩蛋,打個響指,消滅一半的搜索結(jié)果條目,消失特效類似電影里的。但是百度的這個頁面樣式類是動態(tài)的,還要把整個內(nèi)容也輸出,而且很多圖片大概是經(jīng)過了什么處理,沒權(quán)限顯示不了,遂放棄。 本文不是技術(shù)文章,只是單純記錄下 最近婦聯(lián)4在熱映,先劇透兩個精彩片段。showImg(https://segmentfault.com/img/bV...

    whatsns 評論0 收藏0
  • 無限手套說起

    摘要:前兩天看到搜索有個彩蛋,搜索滅霸或者,點擊右邊的無限手套觸發(fā)彩蛋,打個響指,消滅一半的搜索結(jié)果條目,消失特效類似電影里的。但是百度的這個頁面樣式類是動態(tài)的,還要把整個內(nèi)容也輸出,而且很多圖片大概是經(jīng)過了什么處理,沒權(quán)限顯示不了,遂放棄。 本文不是技術(shù)文章,只是單純記錄下 最近婦聯(lián)4在熱映,先劇透兩個精彩片段。showImg(https://segmentfault.com/img/bV...

    Mertens 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<