在都是智能時代,就連一周歲的孩子都知道怎么玩手機,甚至稍微大一點的孩子都知道怎么接打電話,怎么用聊天工具發視頻或語音。那么,問題來了。
很多家長說,我們一般十點左右就都睡覺了,有的時候半夜起來會發現孩子在偷玩電腦,不睡覺。尤其孩子大了,有自己的小心思了,怕管的嚴了,再產生逆反心理,再抑郁……
前段時間就看過這樣一則新聞:因為家長不讓孩子玩手機,結果孩子跳樓了,估計這個爸爸后悔死了。
不過每次發現孩子半夜偷玩電腦,也是控制不住自己的火氣,小宇宙熊熊的燃燒。但還是要跟孩子斗智斗勇啊……
大家有沒有什么好一點的辦法來杜絕這種事情呢?應該怎么辦才能更好呢?
文是繼前面的一篇《兒子玩平板成癮,先看看它的危害,再看我是怎么成功給他戒掉的》的姊妹篇
兩年前孩子玩平板成癮,最終能成功戒掉,現在想想,所需要的決心和勇氣毫不夸張地說:宛如壯士斷腕,刮骨療傷。現在和大家一起分享一下,希望自己的經歷,對需要的家長也能有所幫助。
1、通過康復訓練中的醫生告訴孩子必須戒掉電腦。利用孩子天生就對醫師敬而遠之的心理,所以決定向醫生尋求幫助,請求醫生明確地告訴孩子:“由于你長時間玩平板,現在已經對身體產生了很多不好的影響,所以現在不能再玩平板了,要在我們的幫助下,努力地戒掉平板,只有這樣,身體才能變得棒棒的”。為什么要找醫師幫忙呢?因為如果孩子長時間玩平板或手機,孩子的健康可能或多或少已經受到了影響,我孩子就是在做完檢查后,醫生說注意力需要進行康復訓練的。然后在接下來的一周,每天都去醫院,每次都在醫生的輔助下進行差不多一個小時的訓練,而且有些訓練還要帶上設備。一周以后孩子自己其實也已經明白了玩平板的后果。
2、轉移注意力。除了康復訓練之外,我還把孩子的平板藏了起來,斷了他的念想。告訴他,平板已經被醫生沒收了,以后都不能再玩了。為了轉移他的注意力,當時還給他買了一輛平衡車,有空就帶他出去玩,進行體育鍛煉,培養新的愛好。幾天下來,孩子表現得挺不錯的,逐漸就不提平板了。
3、給孩子看有聲和無聲的繪本,培養孩子閱讀習慣。沒有平板以后,孩子一時間也很難適應,所以每天都抽時間陪孩子看繪本,慢慢地思考繪本上的內容,讓孩子對平板的依賴逐漸地得到淡化。
4、父母以身作則,少在孩子面前玩手機。最好的家教莫過于言傳身教,為了鞏固得而不易的成果,在家里都會盡力的不在孩子面前玩手機。
5、給孩子樹立一個和視力有關的職業,用這個,時刻去約束他。人都是社會的人,不可能孤立存在,孩子也不例外,當看見別的孩子在玩手機或平板的時候,他都會問:“他們為什么能玩?”心里透露出的是滿滿的不公平,每次遇到這種情況,答案都是一樣的,而且每次都奏效:“他們又不像你一樣想當解放軍,難道你還想去找醫生嗎”
Peter Shor,美國麻省理工學院數學系教授。Shor最著名的工作在量子計算方面,特別是用于設計量子算法,現在稱為“Shor算法”,其分解速度比數字計算機上運行速度最快的算法要快。Shor于1959年出生于紐約市,他在帕薩迪納的加州理工學院(Caltech)獲得數學學士學位和博士學位,在麻省理工學院(MIT)的應用數學和加州大學伯克利分校做博士后研究。1986年,他加入新澤西州Murray Hill的AT&T貝爾實驗室,并于1997年搬到新澤西州Florham Park的AT&T實驗室。自2003年起,他成為麻省理工學院應用數學教授。他曾獲得奈望林納獎、哥德爾獎、麥克阿瑟獎、墨子量子獎等獎項。
視頻
【墨子沙龍】Peter shor——量子計算與大數分解_騰訊視頻
圖文
先介紹一些計算發展歷史的背景,以及一些計算實例,比如因數分解算法。然后介紹一下因數分解算法的發現歷程,最后講一下因數分解算法的內容。
計算發展歷史的背景
計算機和物理實驗有什么不同呢?有很多可能的答案,其中一個答案就是電腦能回答數學問題, 而物理實驗回答物理問題。比如說要分解一個很大的數字, 一個好辦法是用計算機來計算;而如果想要測試所有物體是否以相同的速率下降, 這時不會用電腦, 而是如果中所示,伽利略測試兩臺計算是否以相同的速度下落。
另一個答案是:物理實驗是一個非常大的定制儀器,也許會占據整個屋子, 而計算機就是一個小盒子,可以放在桌子上或公文包里。現在讓我們回到上世紀五六十年代,這時計算機剛剛問世,你能分辨圖中哪個是計算機,哪個是加速器嗎?
左邊這個是粒子加速器,上世紀60年代,位于勞倫斯伯克利實驗室,右邊這個是神奇的ENIAC,它是上世紀五十年代發明的世界上第一臺計算機,位于賓夕法尼亞大學。這兩臺儀器都是非常巨大,但之后計算機越來越小,而粒子加速器卻越來越大。為什么會這樣呢?這是因為你不需要對每個數學問題都建造一臺新的計算機。這意味著建造計算機的人可以使用大規模生產,使它們可以越來越高效,越來越便宜,越來越小。而做物理實驗的人每當遇到以前的實驗結果無法回答的問題時,就只能設法突破物理實驗的極限。(比如加速器要越來越大)
計算理論始于20世紀30年代,那時候計算機還沒有發明。上世紀三十年代,在數學邏輯方面,哥德爾證明了著名的不完備性定理,即并非所有的數學命題都能證明是真或是假,所以有些數學問題是無法得到答案的。計算數學與計算機科學密切相關,在哥德爾證明了這個定理六年之后, 四位科學家區分了可計算函數和不可計算函數的定義, 這些研究都源于哥德爾的理論。如果我們閱讀這些論文會發現,他們包含三種對可計算函數的不同定義,而可計算函數的這三種定義都給出了可計算函數是完全相同的事實,這就引出了邱奇圖靈論題。
論文作者認為它是對的,這就是我們現在稱為的“丘奇-圖靈論題”。這個圖靈機可以執行任何設備上的任何計算,這也是計算機的原始模型,它可以很很輕松的處理數學問題。
那么,任何設備是什么意思呢?圖靈和邱奇并沒有想到的一點是, 這是一個我們可以在真實世界中建造和運行的機器. 這樣它就是一個物理問題,而不是數學問題了。隨著實用計算機的發展, 不可計算函數和可計算函數的定義變得越來越不清晰。因為有的函數理論上是可以計算的,但需要非常長的時間來進行計算而且價值也不高,因此一個有效的程序必須要在合理的時間內完成計算。
所以什么是合理的時間呢?您也許會問在一個超級計算機上用一年時間進行計算合理嗎?但是從數學的角度來說這是非常糟糕的, 所以一些理論計算機學家認為, 要在理論和實際中進行妥協。他們認為一個有效的算法應該滿足以下條件:它的運行時間必須是在多項式時間以內, 比如N,N的平方,N的立方,N的一萬次方等等, 而不是2的N次方這種指數級時間。
因此把能在多項式時間內求解的一類問題稱為P,一個事實是大多數的函數是屬于P類問題,因此大部分算法都是有效的。現在為了使P的定義更加有意義, 它不應該依賴于何種計算機類型。這就使得一些計算機科學家提出了量化丘奇論題, 它也有許多其他叫法。它指的是:圖靈機可以有效的執行任何計算任務。它首先是由Alan Cobham在1965年提出的,而因數分解算法對計算機科學家的重要影響在于,它將顯示這個“民間論題”(量化丘奇論題)是錯誤的。
那么,當我發現因數分解算法后記者會問:量子計算機比經典計算機快多少呢?答案就是:無法回答這個問題。船要比火車快多少呢?這不僅僅是取決于船和火車,還取決于目的地在哪里。所以對量子計算機和經典計算機來說,問題在于經過希爾伯特空間的捷徑能否有一個從輸入到輸出。因此要考慮到許多因素, 而事實上這樣的誤解非常普遍, 這也說明了公眾普遍接受了量化邱奇圖靈論點, 即認為計算機中最重要的是足夠的空間以及計算速度。然而量子計算機中的一步操作要比經典計算機中的一步操作長。但是量子計算機可以通過走希爾伯特空間的捷徑來加速計算,而經典計算機無法這樣做,這就大大減少了操作數。
去哪里尋找定量丘奇圖靈論題的反例呢?可能會在難以模擬的物理系統中。那什么樣的物理系統是難以模擬的呢?一個明顯的答案就是湍流問題,它跟納維爾-斯托克斯問題相關,它是七個千禧年難題之一。陶哲軒思考過這個問題, 認為它和一些系統的偏微分方程組很相似。
湍流就是這樣一類很難去模擬的物理系統,而量子力學是另外一種很難模擬的系統,這首先是由Poplavskii和費曼提出的。用數字計算機來模擬量子力學是指數級低效的, 費曼曾指出, 量子計算機的態空間大小是指數級增長的。你把量子系統的狀態存儲到經典計算機中,然后去精確追蹤它們,這需要天文級的時間,但是量子計算機也許能解決這個問題。
在量子算法領域的早期, 1985年, David Deutsch提出問題:量子計算機是否可以加速非量子力學問題的計算?并且他提出了一個非常新穎的例子。七年后,它和Jozsa合作提出了另外一個算法,然后有了更多的人找到新的算法。量子計算機可以加速這些計算,當然,這些算法是為一些問題特定構造的,量子計算機確實可以更快的解決這些問題, 然后呢?
量子算法
量子計算機擅長哪些事情呢?第一個擅長的事情是: 量子計算機可以更有效的模擬量子力學系統。這是Feynman和Manin首先提出的想法。也可以用量子計算機來尋找周期性,這就是Simon問題。還有用量子計算機來分解大數和求離散對數,還有Pell方程和一些其他數學問題也是尋找周期性,Grover則提出可以用量子計算機來有效進行更大空間的搜索。現在來看下什么是因數分解。
假設你有一個整數33,你想要找到兩個整數相乘等于33,用3乘以11即可,兩個數字相乘對經典計算機來說非常簡單。但是如果我們有一個非常大的數字,想要找到它是由哪兩個質數相乘得到,這就是一個非常困難的問題了。如果我們想要分解一個L位的數字, 最好的經典方法是數域篩法, 它需要指數級的時間, 而量子計算機只需要平方級的時間。
用已知算法來進行大數分解的資源消耗估計,需要的經典指令數目上升的非常快, 而需要的量子門操作數上升的很緩慢, 這是因為要分解更多位的數,需要的經典指令數目會指數倍的增加。這個發現對計算機科學家來說是令人興奮的,但對密碼學家來說,互聯網的安全基于公鑰加密,比如RSA加密系統是基于以下事實:很容易將兩個因數相乘,但很難將一個大數進行因數分解。這意味著我們可以這樣使用它:取兩個質數并把它們相乘就得到一個密鑰, 然后把它們分開,其他人就無法分解這個密鑰, 這意味著人們無法破解你的信息。但是如果你有量子計算機的話,就可以破解信息,意味著你可以監聽計算機之間的信息交流,比如在互聯網上購買東西時的信息交流。這就是為什么這個算法在1994年提出后就像病毒一樣迅速傳播。
量子計算基本原理
接下來,我會講一些量子計算機的基本原理, 包括疊加態原理,量子糾纏, 量子態空間的高維性,以及量子干涉。
疊加態原理是說如果一個量子系統可以處在兩個可區分狀態中的一種,那么它也可以同時處在這兩種狀態上,即它可以處在疊加態上。如下圖所示,其中 和 是復數, 并且它們模的平方和為1,這叫做波恩定則。如果你對這個系統進行測量,看它是處在量子態A還是量子態B,得到狀態A的概率是|α|平方,得到狀態B的概率是|β|平方。
下面講一下數學中的疊加態原理,量子態可以用復向量空間中的單位向量來表示,當兩個量子態可以用兩個正交向量表示,它們就是可區分的。
量子比特就是一個有兩個可區分狀態的量子系統。
一個常見的例子就是極化光子, 它只有兩個可區分的極化方向: 垂直極化和水平極化。一個極化光子,你只能看到垂直極化或水平極化,其他的所有狀態都可由這兩種狀態產生。比如右對角極化是垂直極化加上水平極化,左對角極化是水平極化減去垂直極化,也有右旋圓極化,其中相位滯后90度。
這聽起來比較奇怪, 但量子力學就是如此奇怪。如果你有兩個量子比特,那么它們就可以處在4種狀態的疊加,現在不用水平極化和垂直極化來代表兩種可區分狀態,而是用0態和1態來表示,比如這種兩比特狀態, |01>-|10>,其中每個量子比特都沒有確定的狀態。
當兩個量子系統從整體上看處在確定的狀態, 但分開看卻處在不確定的狀態時,它們是糾纏的。這就是令愛因斯坦不安的地方, 他把這個稱為“鬼魅般的超距作用”。許多其他著名的科學家也對此感到困惑,糾纏為什么令人不安呢?如果你用概率論來解釋,這就導致了所謂的局域實在論,你將不得不接受這個結論:在一個地方進行的測量, 會影響到另外一個地方的測量結果,盡管這兩個地點間沒有任何聯系,你可以認為它們分開的足夠遠。
如何解決這個問題呢?一種辦法就是去接受這種“鬼魅般的超距作用”,另一種方法是承認量子力學中的概率定律與經典情況不同。量子力學可以加速計算的第三個特性是量子系統的高維性,如果你有n個量子比特, 則它們的量子態由一個2的n次方維的向量描述。下面這些就是這個向量空間的基矢。
量子計算機的線路模型
這個空間的高維性也是量子計算擁有強大計算能力的原因之一。接下來介紹量子計算機的線路模型,它是一個簡化模型,就像圖靈機的簡化模型一樣。不過一些量子計算機并不是嚴格的線路模型,它們會有些不同,不過這是一個很好的方式去理解量子計算機。
為了進行計算,我們需要給計算機輸入, 需要改變計算機的狀態,需要獲取計算機的輸出,那么如何做到這些呢? 對于輸入,我們可以在二進制輸入對應的狀態下啟動計算機, 比如,100101101, 我們把第一個量子比特置為1態,把第二個量子比特置為0態,其它量子比特同理置為某個狀態。我們也許需要額外的空間來運行算法,所以我們需要在初始化時添加額外的0,就像這些0一樣需要更多的空間。
下面來看看如何輸出, 在計算結束時,量子計算機處在某種狀態, 比如這種一般的量子態。但我們不能通過測量完全標定出量子態, 因為有海森堡不確定性原理。假設我們在標準基下進行投影測量,將會有||的概率得到結果i,比如你會有||的概率得到|0…001>,所以應該怎么做呢?
當觀察量子計算機后卻得到一個概率分布, 并且我們無法做得比這更好, 因為量子力學本質上是一種概率論。你肯定會問:那如何確定量子算法解決了問題呢?我們認為:當能夠以很大概率得到正確結果時,該量子算法就解決了問題,這跟用經典概率算法解決問題一樣。
現在我們需要量子力學的另外一個原理:線性原理,即孤立量子系統的演化是線性的。孤立量子系統中純態的演化可以用作用在態空間上的密度矩陣來描述,干涉來源于量子態是用復數表示。
如果對0態施加一次H變換, 則各有50%幾率得到0態或者1態,但是如果你應用兩次變換,在這里就會有一個負號, 這就意味著|0>這一項抵消了, 即施加兩次變換后,|0>會變成|1>,|1>會變成-|0>,這就是量子計算運行的一個例子。
下面講講計算,對單個或兩個量子比特進行變換操作時, 相當于用2*2或4*4矩陣乘它們, 這跟經典計算機進行計算是類似的,即任何經典計算都由基本的與或非門組成。
量子算法背后的理論
現在介紹下快速量子算法背后的理論,我們要做的就是設計算法使得那些產生錯誤結果的計算路徑相消干涉,這將降低得到錯誤答案的概率。讓那些產生正確結果的計算路徑相長干涉,這樣你就能極大的增大獲得正確答案的概率,這就是設計量子算法時需要做的,這也是設計一個量子算法很困難的原因。下面我想介紹一下因數分解算法,我們要做的就是進行模運算。
一個數除以M得到的余數就是模運算的結果, 比如13加9除以17的余數是5,而5乘7除以17的余數是1,我們將在因數分解算法中用到它。現在來講下所有快速分解算法背后的思路, 比如我前面講過的數域篩法,它是經典算法。還比如量子分解算法,要分解一個大數N,需要找到兩個數a和b, 它們滿足a的平方等于b的平方除以N的余數,但是a不等于正負b除以N的余數,然后你可以得到這個方程,a的平方減b的平方等于a+b乘以a減b ,它又等于N的整數倍,因為a的平方減去b的平方除以N的余數為0。
現在我們還剩兩項,其中一項給出一個因數,另一項給出另一個因數。現在我們來分解下33,令a等于13,b等于2,而169除以33的余數是4,所以2的平方等于13的平方除以33的余數,然后用13的平方減去2的平方的結果除以33,其余數為0。15除以3的余數是0,所以15就給出因數3, 11給出因數11。所以最終得到33=11×3。這是歐幾里得兩千年前發明的算法, 我們可以用來計算因數分解問題。
下面用量子分解算法來對大數N進行分解,首先要找到一個序列的周期,一個序列的周期就是經過多久它會重復,即經過多久再次出現。你獲得這個數后,你就知道了周期r,而x的r次方除以N的余數就等于1,如果我們幸運的話,r剛好是偶數,然后計算這個公式就能得到因數。
我們現在通過取最大公約數得到兩個因子, 最后就可以給出一些不錯的結果, 至少對于隨機選擇的x中的一半是如此。我們再舉一個分解33的例子,取x等于5,然后得到序列:1,5, 5的平方25,5的立方為26,5的四次方為31 (結果為除以33的余數),5的10次方除以33的余數是1,因此5的5次方除以33的余數是23,然后把33分解成(23+1)×(23-1),就等于24×22,最后24就給出一個因數3,22給出一個因數11,這樣我們就分解了33,33=3×11。
因此我們需要找到x的次方除以N的余數的周期, 方法就是利用傅里葉變換可以很容易找到周期性。在找x的次方除以N的余數的周期時會遇到問題,問題就是這些序列可能會有指數級長的周期,解決辦法就是利用量子計算機的指數級增大的態空間,去指數級加速傅里葉變換。正如你所知道的, 經典算法中用FFT(快速傅里葉變換)來計算傅里葉變換,我們可以改造成量子傅里葉變換。下面總結一下因數分解算法。
首先將第一個量子寄存器置為疊加態, 然后隨機選擇x, 如果i在第一個寄存器中, 就在第二個寄存器中計算x的i次冪除以N的余數, 這兒還是經典計算機的計算。我們可以使用經典方法來進行計算,然后就對第一個寄存器進行量子傅里葉變換,接著測量第一個寄存器,我們就得到了量子計算機的輸出結果。然后在經典計算機上進行數據處理后,就得到因數了。
在分解算法中有一些很重要的地方, 我們在第二步中,用了第二個寄存器進行計算, 但是之后就再也不用它了,為什么不把這一步去掉呢? 這樣不行,因為你去掉了這一步,就會去掉算法里面的干涉,最后就不會得到正確的答案了,這是因為量子力學定律。如果一個量子系統作用到另一個量子系統, 那么第二個量子系統也會反作用于第一個系統。
這個算法能成功的原因在于:當你進行完傅里葉變換后, 就在第一個寄存器中獲得了干涉,如果第一個寄存器的值跟周期相近,那么所有的系數相加后得到相長干涉,而如果這個值不是周期,那么所有系數相加后就得到相消干涉,因此你最終得到的結果是接近周期的。
關于“墨子沙龍”
墨子沙龍是由中國科學技術大學上海研究院主辦、上海市浦東新區科學技術協會及中國科大新創校友基金會協辦的公益性大型科普論壇。沙龍的科普對象為對科學有濃厚興趣、熱愛科普的普通民眾,力圖打造具有中學生學力便可以了解當下全球最尖端科學資訊的科普講壇。