今天我們聊聊熱門話題,量子計算機。與量子計算機相對的就是現在大行其道的經典計算機。我們知道,在經典計算機中資訊是以0和1的形式流通的,這就是所謂的位元。舉例子,按照二進位制的套路,那麼數字0-10就分別轉化為00,01,10,11,100,101,110,111,1000,1001和1010。如果每個位元現在不用數字了,而是改用乙個粒子來傳遞的話,那麼就可以大幅度推進計算機的微型化,這就是量子計算機。
不過問題來了,我們怎樣才能用乙個粒子來表示0或1呢?科學家發現電子有一種被稱為「自旋」的屬性。這使得它們就像是一些微型的指南針。如果我們用一塊強力磁體測量乙個粒子的自旋,就會發現自旋只有兩種狀態,分別是三和下。當然這個上和下他只是相對的。於是利用這一特性,我們就可以指定乙個自旋向上的粒子代表1,而另乙個自旋向下的粒子,則代表0。這便是量子計算機的原理。可見原理是很簡單的。
那麼人麼費了這麼多年勁直到現在量子計算機還是不溫不火,也就只有ibm公司和我們中國中科大的潘建偉教授團隊獲得了些許突破性進展。到底是為什麼困難阻礙著量子計算機的發展呢?事實上像是電子、原子這些組成物質的粒子在單獨存在時。他們是會遵守量子力學中那些奇特的定律的。比如說,當我們不去打擾這些小粒子時,他們的自旋就處於非常奇特的狀態,既指向上,也指向下。兩種狀態,是同時存在的。我們叫這種現象稱之為量子疊加態。這種特性不僅關係到自旋,也關係到我們可能利用到的其他屬性,比如波粒二象性就是典型的代表之一。只有在人們測量時這些粒子才會選擇乙個比較正常的狀態。這個選擇對於粒子來說完全是隨機的,這種現象被稱為「退相干」。
由此,我們便看出問題所在了。當你向電腦輸入乙個1時。運載這個1的粒子卻表現出了乙個莫名其妙的狀態,既表示1也表示0,當你想要確定他的值時,他就隨便給你乙個答案敷衍了事。也就是說,這個資訊會變得有無限可能,甚至變得和原先完全相反。既然如此,量子計算機看來就是死路一條了。那麼我們為什麼還要投入重金去研究並發展量子計算機呢?這是因為量子計算機可以同時進行多個運算,專業說法叫平行計算,計算能力極其強大。具體的套路是這樣的,你向電腦輸入一系列普通的位元,他們可以代表一些需要相乘的數字,比如說,現在你輸入四個量子位元,由於量子是處於疊加態的。前兩個量子位元可以代表00,01,10,11也即是數字0123中的乙個數字。而隨後兩個量子位元,也同樣代表,0123,中的乙個數字。接下來,讓前後兩個數字相乘,由於每個量子位元都同時表示0和1。所以我們需要機器同時進行16次運算來對應0和1的16種可能組合。0000就代表0*0。0110就代表,1*2,1010,就代表2*2等等。也就是說,此時的計算機就被分成了16臺不同的機器。一台機器收到的是0000,另一台收到的是0110,第三台收到的是1010,以此類推直到1111。一次輸入四個量子位元,計算機就能同時進行0到3之間,任意兩個數字的16種可能的乘法運算。相比於經典計算機,量子計算機在這個方面顯然是呈現吊打形式的。
接下來該幹什麼呢?當然是輸出了。下面就是見證奇蹟的時刻,我們可以得到7個結果,分別是0000,0001,0010,0011,0100。0110,1001,也就是0,1,2,3,4,6和9。我們在讀取這些量子位元時,會迫使它們選擇這7個中的乙個確定的狀態。此時,如果列乙個**的話,這個**在音訊附屬文稿中也有,就好比在這個面有7種可能結果的**中,隨機選取乙個答案。你會發現,我們有十六分之七的可能選擇0,十六分之二的可能選中,2,3或6。只有十六分之一的可能選中1,4或9。當我們完成了所有可能結果的測算後,就會發現2和3在16個結果中只出現了兩次,也就是說只有2×1和1×2才能讀出2。那麼對於3的情況也是一樣的。通過這次測算,我們找到了素數2和3。當然了,這算不上什麼了不起的成就。但是量子計算機可以使用同樣的方法來測算更為巨大的數字。
不用證明,387090838105這個數字是不是素數,經典計算機需要進行700億次的乘法運算,700億次,什麼概念?現在世界上運算能力最強的天河二號超級計算機,它的運算速度也只有5.49億億次,對於普通計算機來講,就更是難以完成的任務。動輒就是有上百萬時間。如果使用一台只包含幾十個量子位元的量子計算機的話,只需要很短的時間,答案就會從天而降。量子計算機之所以可以完成這些任務,是因為對於n個量子位元來說,那就是2的n次方個可能組合,十個量子位元就是1024種可能。100個量子位元,那就就不知道高到**去了。2的100次方運算除以天河二號的每一秒5.49億億次,就意味著天河二號需要持續工作74萬年。量子計算機的巨大實力在此可見一斑。既然量子計算機擁有如此強的運算能力,那麼久就趕緊生產才是啊。問題是,製造這樣一台量子計算機是極其困難的。剛才我們說了。平行計算的長處來自於每乙個量子位元同時表示0和1的能力。這樣就必須保證在整個運算過程中,量子位元始終處於疊加態。而量子位元和外界的任何接觸,都會使它選擇某個確定的狀態,從而摧毀疊加態。唯一的辦法就是讓他們嚴格隔離,並且操作使用時萬分小心。
目前製造出的量子計算機,主要由幾個被冷卻到接近絕對0度的原子組成。它們或者懸浮在乙個磁場中,或是被隔離在富勒烯中。亦或是集中在乙個特別設計的分子中。科學家使用微波來操縱這些原子,使它們輕輕移動,而不必選擇某一狀態。然後,用核磁共振儀來讀取他們的自旋狀態。可想而知,這樣一種操作方式,量子計算機我們目前是不可能給它放到你面前的辦公桌上的。
量子計算機存在的另乙個缺陷是:對於那些經典計算機可以完成的一些很基本的運算,表現的卻並不是很擅長。原因是這些運算,對於精巧的量子位元來說變化的太劇烈。比如說,無論你輸入1*12,3*4,,2*6,4*3,6*2,還是12*1,你的計算機只會顯示出結果12。這樣一來,他就丟失了之前輸入了兩個數字。在對計算機領域,資料丟失也就意味著一些位元被完全摧毀,並以熱量的形式在機器中消散。如果乙個量子位元,也遇到這種情況的話,它就會向它執行的機器散發熱量。也就是說,它和它的外界環境產生了相互作用。由此一來疊加狀態也就被摧毀了,量子計算機就毫無優勢可言了。由於有這種複雜情況的存在,為量子計算機設計乙個像乘法運算這樣的基本任務,程式就要比經典計算機困難的多。由此得到的結論就是目前的量子計算機不僅體積巨大,而且他甚至連一台普通電腦的功能都很難勝任。
現階段量子計算機到底會起到什麼作用呢?接下來就是重頭戲了啊,如果我們操作得當的話,我們還是以四個量子位元為例。結果我們都知道了。我們會得到乙個16個計算結果的疊加。現在我們就該讀取這些量子位元了。可惜並不是我們並不能一下就能讀到16個結果。因為只要你一讀取,就意味著你就和它們產生相互作用,迫使他們選擇乙個確定的狀態。所以,你就只能得到乙個答案。乙個在所有可能的結果中隨機選擇而得出的答案。這個答案看起來是無濟於事的。所以,我們必須讓量子計算機多運算幾次來得到其他一些可能的結果,這樣才算是完成了乙個完整的任務。但是這樣一來的話,如果我們為了得到所有可能的結果,而又重複執行同樣多的次數,那麼對於所有可能組合同時進行運算還有什麼意義呢?這不是和經典計算機,把所有可能的計算挨個執行一下是一樣的嗎?
其實,完全不一樣。因為通常情況下可能得出的結果數量,要遠遠少於輸入時理論上的可能組合數。比如所有和0相乘的結果,都只有乙個,那就是0。這樣我們就可以更加快速的完成這一輪運算。可見,量子計算機所做的工作和**選舉結果是非常相近的。比如說美國有1億多選民。那麼民意測驗機構要想****選舉結果,他該怎麼辦呢?顯然不會是把每個人都問一遍,這不瘋了麼。但是,由於實際上只存在兩位**候選人。這樣,民意測驗機構,只需要詢問1億選民中的幾萬人就可以對選舉結果做出乙個相對準確的**,這就是量子計算機的工作。對於一項計算的結果進行**,研究該計算的總體特性,而不是給出某一確定運算的結果。
當然了,我們也可以使用當前的計算機來進行這樣的測算。比如說如果要研究某一運算和計算的整體屬性。第一步,就是計算出所有可能的結果。第二部是測算這些結果出現的規律,並找出有用的資訊。如果運算存在著數量驚人的可能組合的話,那麼對於一台經典計算機來說,完成步驟一可能就需要他連續運作數百萬年。這是因為他必須乙個個的輪流運算。隨後進行的第二部運算,花費的時間可能會短一些,但很多計算機連步驟一都完成不了,然而還談什麼第二部呢。如果使用量子計算的話,雖然步驟二的時間,可能不會縮短,但步驟一幾乎可以瞬間完成,這正是,量子計算機的優勢所在。
不過是騾子是馬,還得拉出來溜溜。你自己悶聲發大財,不行,還必須應用到實際中去推動歷史的程序。這樣,量子計算機才真正算得上是偉大創造。問他有什麼用呢?目前人們主要考慮到兩種應用。第一種是應用於分子模擬,什麼是分子模擬呢?我們知道,即便是最小的分子,也是由好幾個量子級的粒子構成的。這其中包括電子質子和中子等。每個粒子都影響著其他粒子,而且,每個粒子也都有可能處於多種狀態。計算這個巨大的組合的所有運動狀態,也就是上面說到的步驟一,在經典計算機上是不可能完成的。而量子計算機就可以對此應對自如。接下來,我們只需要根據這些結果進行測算,就可以發現相關的答案。如分子被加熱後的狀態,或者是和另乙個分子同時存在時的狀態。
這樣一來,如果被模擬的分子是一種藥品,我們就可以虛擬的**出它的功效。同樣的,我們也可以研究出某種化學品的性質,或者某種合金的強度。而根本不需要把他們製造出來。還有,我們說慈力的時候,怎樣的組合能夠獲得實力更強的磁體,人們是沒有辦法從原子層面進行推導,只能依靠經驗。但有了量子計算機後,一切都會大不同。我們將真正意義上從分子原子的層面了解到材料的性質。相信化學家和生物學家對此一定心動不已。
量子計算機的第二個應用這是密碼。比如最簡單的密碼體系,就是調換字母,比如把a換成b把b換成c。i love有這句話就變成了,gmowfzpv。對於解碼的人來說,他是不知道規律的。可能是把a換成x或者m,完全不是那種按順序一一對應的關係。所以為了給它解碼,我們就得把幾百億種可能的調換方法,乙個乙個的計算出來。然後,在所有的計算結果中找出包含英語單詞的結果。經典計算機,就這樣簡單的一句話,可能就有工作幾年時間。而一台包含十幾個量子位元的量子計算機,在一瞬間就可以完成你需要研究的所有調換。事實上,我們目前所有用來保護網頁和商業秘密的大部分密碼,在這樣一台機器面前,至多只能堅持幾分鐘時間。等到它真正投入使用時,也許現代社會的整個協作體系,都將發生深刻的變革。至於這究竟是乙個怎樣的未來,恐怕我們還不得而知。可以確定的是一場新的革命,即將爆發,就讓我們拭目以待吧。
帶你了解make menuconfig
帶你了解make menuconfig 在嵌入式領域當中,在配置核心的時候會有很多配置方法,比如說make config 基於文字的為傳統的配置介面 make oldconfig 如何只想在原來核心配置的基礎上修改一部分,則會省去很多麻煩 make xconfig 基於圖形視窗模式的配置介面,xwi...
帶你了解IPython
1 支援 的自動補全 自動縮排,已經支援bash shell 2 jupyter notebook 以前稱為ipython notebook 它提供了乙個使用者和ipython核心互動的乙個介面,同時它又是乙個互動式的筆記本 可以儲存你的源 執行結果 集文字 markdown 影象 公式與一體的py...
帶你了解NFC
近場通訊 near field communication,簡稱nfc 是一種新興的技術,使用了nfc技術的嵌入式裝置裝置 例如移動 可以在彼此靠近的情況下進行資料交換,是由非接觸式射頻識別 rfid 及互連互通技術整合演變而來的,通過在單一晶元上整合感應式讀卡器 感應式卡片和點對點通訊的功能,利用...