【科學種子科技英語】用生化方法創造一個隨機數

2021-02-15 上海青少年科學社

本文內容未經授權不得轉載或引用,違者必究

True random numbers are required in fields as diverse as slot machines and data encryption. These numbers need to be truly random, such that they cannot even be predicted by people with detailed knowledge of the method used to generate them.

從投幣機到數據加密,各個領域都需要真正的隨機數。這些數字必須是真正隨機的,如此即使是那些了解這些數字生成規則的人也無法預測它們。

 

As a rule, they are generated using physical methods. For instance, thanks to the tiniest high-frequency electron movements, the electrical resistance of a wire is not constant but instead fluctuates slightly in an unpredictable way. That means measurements of this background noise can be used to generate true random numbers.

這些數字通常是使用物理方法生成的,例如,由於最微小的高頻電子運動,導線的電阻不是恆定的,而是以一種不可預測的方式輕微波動,這意味著對這種波動背景噪音的測量可以用來生成真正的隨機數。

 

Now, for the first time, a research team led by Robert Grass, Professor at the Institute of Chemical and Bioengineering, has described a non-physical method of generating such numbers: one that uses biochemical signals and actually works in practice. In the past, the ideas put forward by other scientists for generating random numbers by chemical means tended to be largely theoretical.

如今,(蘇黎世聯邦理工學院)化學和生物工程研究所的羅伯特·格拉斯教授領導的一個研究小組,首次描述了一種生成這些數字的非物理方法:一種使用生物化學信號並能夠實際操作的方法。在此之前,其他科學家提出的用化學方法生成隨機數的想法大多是理論層面的。

DNA synthesis with random building blocks

具有隨機結構的DNA合成

For this new approach, the ETH Zurich researchers apply the synthesis of DNA molecules, an established chemical research method frequently employed over many years. It is traditionally used to produce a precisely defined DNA sequence. In this case, however, the research team built DNA molecules with 64 building block positions, in which one of the four DNA bases A, C, G and T was randomly located at each position. The scientists achieved this by using a mixture of the four building blocks, rather than just one, at every step of the synthesis.

對於這種新方法,蘇黎世聯邦理工學院的研究人員應用了DNA分子的合成方法,這是一種多年來經常使用的成熟的化學研究方法,一般用來產生精確定義的DNA序列。然而,在這種情況下,研究小組構建了具有64個基塊位置的DNA分子,其中A、C、G和T四個DNA鹼基的其中一個被隨機放置在每個位置上。科學家通過在合成的每個步驟中混合使用四個構建模塊而不是僅使用一個構建模塊來實現這一目標。

 

As a result, a relatively simple synthesis produced a combination of approximately three quadrillion individual molecules. The scientists subsequently used an effective method to determine the DNA sequence of five million of these molecules. This resulted in 12 megabytes of data, which the researchers stored as zeros and ones on a computer.

結果,一個相對簡單的合成產生了大約3千萬億單個分子的組合。隨後,科學家們使用了一種有效的方法確定了其中500萬個這樣的分子的DNA序列。這就產生了12兆字節的數據,研究人員將這些數據以0和1的形式存儲在計算機上。

 

Huge quantities of randomness in a small space

一個小空間中存在大量的隨機性

 

However, an analysis showed that the distribution of the four building blocks A, C, G and T was not completely even. Either the intricacies of nature or the synthesis method deployed led to the bases G and T being integrated more frequently in the molecules than A and C. Nonetheless, the scientists were able to correct this bias with a simple algorithm, thereby generating perfect random numbers.

然而,一項分析顯示,A、C、G、T四種構建塊的分布並不完全均勻。無論是自然的複雜性還是採用的合成方法,都導致G和T鹼基比A和C鹼基更頻繁地融入分子中。儘管如此,科學家們還是能夠用一個簡單的算法糾正這種偏差,從而產生完美的隨機數。

 

The main aim of ETH Professor Grass and his team was to show that random occurrences in chemical reaction can be exploited to generate perfect random numbers. Translating the finding into a direct application was not a prime concern at first. "Compared with other methods, however, ours has the advantage of being able to generate huge quantities of randomness that can be stored in an extremely small space, a single test tube," Grass says. "We can read out the information and reinterpret it in digital form at a later date. This is impossible with the previous methods."

聯邦理工學院的格拉斯教授和他的團隊的主要研究目的是證明化學反應中的隨機事件可以用來產生完美的隨機數。一開始,把這一發現轉化為直接應用並不是首要考慮的問題。「然而,與其他方法相比,我們的優勢在於能夠產生大量的隨機性,這些隨機性可以儲存在一個極小的空間裡,一個試管中,」格拉斯說。「我們可以讀出信息,並在以後以數字形式重新解釋它。用以前的方法是不可能的。」

 

Story Source:

Materials provided by ETH Zurich. Original written by Fabio Bergamin. Note: Content may be edited for style and length.

 

encryption 加密

random 隨機的

electrical resistance 電阻

synthesis 合成

DNA sequence DNA序列

bases  鹼基

algorithm 算法


 

相關焦點

  • 隨機數大家都會用,但是你知道生成隨機數的算法嗎?
    真偽隨機數 當前學界分別真偽隨機數的方法非常簡略,一句話就能說清楚, 但凡用必然的算法應用法式生產的都是偽隨機數 ,經歷物理徵象發生的隨機數才是真隨機數。也即是說計較學家們曾經證實了僅僅寄託算法是無法生產真隨機數的,也能夠以為這是一個NP疑問。
  • Excel生成隨機數的技巧,隨機數發生器,你用過嗎
    商業分析中的很多應用要求從特定的概率分布中隨機抽樣。例如,在財務模型中,當銷售額、銷量增長幅度、運營支出和通貨膨脹因子等全都不確定時,我們可能對累積的貼現現金流的分布感興趣,而這一分布可以用概率分布來描述。那些決策模型的結果變量,是隨機輸入變量的複雜函數。要理解這些變量的概率分布,只有藉助所謂蒙特-卡羅方法的抽樣流程才能實現這一抽樣流程。
  • JavaScript用Math.random()生成隨機數
    基本概念顧名思義,Math.random()方法就是用於生成隨機數的,因為單詞random的意思正是「隨機的」。該方法生成的結果是 [0, 1) 範圍內的浮點數,注意這是一個左閉右開的區間,即該區間包含0而不包含1。官方文檔指出Math.random()方法生成的隨機數在該區間上要大致符合均勻分布。Math.random()的語法結構如下所示,可以看出它是沒有參數的。
  • Excel隨機數生成方法,包括準確生成不重複和小數隨機數
    在 Excel 中,生成隨機數有兩個函數,分別為Rand函數和RandBetween函數,前者用於生成 0 到 1 之間的隨機數,後者用於生成指範圍的隨機數。它們生成的隨機數中都會產生重複值,如果要生成不重複的隨機數得用變通的方法,通常有兩種方法,一種為先生成種子再生成不重複的隨機數,另一種為用多個函數生成。
  • 單片機隨機數:rand(),srand()
    srand()就是給rand()提供種子seed如果srand每次輸入的數值是一樣的,那麼每次運行產生的隨機數也是一樣的,srand(n)for(10)rand()也就是說,以一個固定的數值作為種子是一個缺點。
  • 隨機數
    返回值:返回自從 1970-1-1,00:00:00 起經過的秒數。函數功能:獲取當前系統時間,返回 time_t 類型數據,其實就是一個大整數。(2) srand()函數函數原型:void srand (unsigned int seed)頭文件:參數列表:seed:表示隨機時間種子,必須正整數。
  • 偽隨機數發生器:你不知道,其實計算機並不能產生隨機數
    在生活中,我們需要用到隨機數的地方很多,例子也很好舉,比如我們買彩票的號碼就是一個隨機數。但是當計算機中需要產生隨機數的時候,絕大多數情況下並不是真的隨機數,我們把它稱為偽隨機數。如果大家對編程有一些基礎的話,那麼對於rand()函數或者random()函數就不會陌生,這兩個函數都是用來產生偽隨機數的,要設定一個隨機種子(數值形式)來讓函數產生偽隨機數。
  • Java 生成隨機數的 5 種方式,你知道幾種?
    Math.random() 靜態方法 產生的隨機數是 0 - 1 之間的一個 ,即 。 當第一次調用 方法時,自動創建了一個偽隨機數生成器,實際上用的是 。當接下來繼續調用 方法時,就會使用這個新的偽隨機數生成器。
  • 淺談Java中的幾種隨機數
    眾所周知,隨機數是任何一種程式語言最基本的特徵之一。而生成隨機數的基本方式也是相同的:產生一個0到1之間的隨機數。看似簡單,但有時我們也會忽略了一些有趣的功能。我們從書本上學到什麼?例如:new java.util.Random().nextInt(10) 它有一個缺點,就是它是一個對象。它的方法必須是通過一個實例來調用,這意味著必須先調用它的構造函數。如果在內存充足的情況下,像上面的表達式是可以接受的;但內存不足時,就會帶來問題。一個簡單的解決方案,可以避免每次需要生成一個隨機數時創建一個新實例,那就是使用一個靜態類。
  • 詳解Python隨機數的生成
    Python內置的random模塊提供了生成隨機數的方法,使用這些方法時需要導入random模塊。下面介紹下Python內置的random模塊的幾種生成隨機數的方法。1、random.random()隨機生成 0 到 1 之間的浮點數[0.0, 1.0)。
  • python安全開發軍規之四:使用安全的隨機數生成器
    背景日常開發中,必然會碰到需要生成隨機數的需求,比如生成圖片驗證碼,簡訊驗證碼……隨機數生成既然是這麼簡單的一個功能,開發必然也很簡單,我們看看怎麼生成一個隨機數,這裡以隨機生成1-100的整數為例。普通程式設計師的寫法import randomrandom.randint(1,100)只用了兩行代碼,程式設計師小Z就寫出了一個隨機數。
  • "量子科技"理論顛覆傳統思維,芯鏈真隨機數的量子概念
    量子理論認為「量子」是自然界最小的單元,是不可再分的,如果「量子」存在,那麼世間一切都是可以度量的,那麼宇宙中所有的現象都可以用科學理論來推演。但是偉大的革命領袖毛主席從哲學的角度說過「物質無限可分」,現有的「量子科技」是基於量子理論假設和構想下的一種世界觀和方法論,這就是科學的辯證性。
  • 用課程播下科學種子,這所小學喚醒了「誠勇」少年內在的科學熱情|...
    原標題:用課程播下科學種子,這所小學喚醒了「誠勇」少年內在的科學熱情| 向科學進軍民小編說科技創新靠人才,人才的培養呼喚育人方式的改革。中國的學校能否培養出一大批具備科學家潛質的未來科學家,這個答案也許便藏在您今天所從事的工作中。
  • 抽獎真的是隨機的嗎?科學解釋你為什麼沒能成為「中國錦鯉」
    運行那個隨機算法以後,這些生成的隨機數就在那兒了,你每次管計算機要個骰子,它就按照數列的順序給你一個,不和你說,就以假亂真了。。。在上面提到的場景裡,數字 [ 561981980 ] 被稱作隨機數種子。
  • 簡單隨機分組
    常見的隨機分組方法包括:簡單隨機化(simple randomization)、區組隨機化(block randomization)和分層隨機化(stratifiedrandomization)等。今天先看簡單隨機分組的原理及操作方法。
  • 國際上首次成功實現器件無關的量子隨機數
    這項成果將在數值模擬和密碼學等領域得到廣泛應用,有望形成新的隨機數國際標準。 隨機數在科學研究和日常生活中都有著重要的應用:例如,天氣預報、新藥研發、新材料設計和核武器研製等領域,常常需要通過數值模擬進行計算,而數值模擬的關鍵就是要有大量隨機數的輸入;在遊戲和人工智慧等領域,需要使用隨機數來控制系統的演化;在通信安全和現代密碼學等領域,則需要第三方完全不知道的隨機數作為安全性的基礎。
  • excel隨機數函數是什麼?excel怎樣生成隨機數?
    本篇將介紹excel隨機數函數是什麼?excel怎樣生成隨機數?有興趣的朋友可以了解一下!一、前言excel是我們工作中很常用的一款表格製作工具,它不僅僅只是用來製作表格,它還能對表格中的數據進行處理(比如:運算、排序、篩選等)。excel為數據的處理提供了很多函數,今天小編要介紹的是excel隨機數函數,以及隨機數函數的用法,希望對大家有所幫助!
  • 英語啟蒙:大道至簡,這個最笨的方法可以創造奇蹟!
    從喬姆斯基的繼承者,或說是發揚光大者平克教授的大作《語言本能》中,我們了解到,在研究人類語言發展的語言學家和科學家中,歷來分為兩個學派,一個是語言天賦論者,另一個是語言後天論者。很多父母為了不錯失任何「科學的」理論和經典的資源,每天走馬燈似的讓孩子嘗試不同的方法和資料,結果花費的數年時間,孩子的英語水平孩子還在原地踏步。問題究竟出在哪裡?那是因為大家都忽略了英語啟蒙的一個重要的法則:大道至簡。通俗地說,就是「貪多嚼不爛」。
  • 「每日一練」巧用python生成隨機數
    隨機數在我們的生產和生活中有很多的應用場景,比如說登錄驗證的隨機數字等等,那麼你知道在Python中怎麼生成隨機數嗎?往下看,就是這麼簡單!題目python中生成隨機整數、隨機小數、0--1之間小數方法代碼先上代碼~運行效果題目詳述程序分析:隨機整數:random.randint(a,b),生成區間內的整數隨機小數:習慣用numpy庫,利用np.random.randn(5)生成5個隨機小數0-1隨機小數
  • 玩轉Python 中的隨機數
    開發中我們經常遇到需要隨機數的場景,比如為了用戶密碼更安全我們有時會加鹽,也就是將用戶原密碼連接上一串隨機字符然後加密保存,又比如我們可能需要隨機展示某張圖片等等。今天,我們就來理一理 Python 中的隨機數的玩法,當然,這裡只涉及標準庫。