為什麼有人心算比計算機還快?
如題,有時候在電視上看到一些人心算比計算機還快,這是為什麼呢?有什麼技巧沒?
————————————————————Ps:不少知友希望我改成「是不是」問問題,但是我問問題之前也百度谷歌過,結果也確有這類人(即使當時用的計算機不如現在的)(有人說這是假的,如果這樣,我真的不知道有什麼是真的),於是抱著想要知道原理的心態問問題的。在這之後我也看過計算機的計算原理:依靠固有的硬體及電路板還有編程語言實現計算的。而人類(看知友的回答)應該依靠的是神經元,且似乎沒有專門神經元負責計算(腦洞:不然人類心算肯定比計算機快,只要兩個神經元接收兩個數字,再讓兩個神經元直接直接通過某計算神經元就得出結果了,23333快吧)扯遠了,感謝知友們的認真回答,真的學到不少。
不知不覺感覺問題的味道變了,我在知乎問問題沒經驗,所以問得不好請見諒。
那到底是有多快呢,保守地說,32位計算機一秒鐘可以算1億次2147483647以內的加法。小時候看電視上說心算比計算器快的,配的黑白畫面是,一邊看到題目心算,另一邊看到題目然後開始搗半天計算器按鈕,然後心算勝出。所以說輸入輸出往往是瓶頸。
intel i7 CPU的浮點計算能力是69.23 G FLOPS,也就是每秒能夠計算69.32億次浮點計算,簡單說,就是你的電腦,每秒能計算6932000000個加減法.然後你覺得世上存在一個每秒能計算6932000000個加減法的人嗎?
搞電視節目那幫人,為了奪人視線,怎麼驚悚怎麼拍,一會兒"比計算機還快"了,一會兒"愛因斯坦是錯的"了,一會兒"科學無法解釋"了.一看全是偷換概念,關鍵是.....還真有人信!那些說拿手用鍵盤輸入給電腦的,我想說這什麼玩意。這樣測得不是電腦的速度,而是電腦+人的速度,根據amdahl"s law這樣的瓶頸就是人類,即使輸了也是只能說明人類太無能。夠具體了吧?
別說什麼IO瓶頸,現在就是給一千個加法題讓你算,就最簡單的txt格式打開的一瞬間讓電腦跟人同時開始算,用個很簡單的perl腳本跑出結果不到一秒鐘吧?那要是一萬個加法題呢?人類還得一個一個去讀,人類的IO delay說到底還是比電腦慢的。
這還是單節點的計算機,假如是最簡單的計算集群,一百個節點,稍微用點並行演算法,算個一億道加法題,你人類傻了吧?就算算上interconnect delay計算機腳本也就幾秒鐘。我覺得這種真的沒法比。那都是騙人的,不服來算個逆矩陣試試?
因為按鍵盤的人手速太慢了。
如果讓一個職業打字的,和你職業心算的。我相信打字速度還是比計算速度要快的。
但是你非找一個業餘打字的,和一個職業心算的比,這算怎麼回事?說比計算器快還有可能(加上錄入操作時間),想比計算機快,你怎麼不上天。
其實問題是「為什麼心算比手按計算器按得快」
比計算機快,說的是比錄入計算機要快
比如1+1,掃一眼說=2
計算機/器呢,你得按1+1=四個鍵如果要比,就應該也讓計算機用攝像頭,然後程序自己從ORC文字識別到最後輸出結果。。印度計算天才Shakuntala Devi去世 被譽為人類計算器-CSDN.NET
她的驚人表演還很多,比如在美國一所大學,她50秒內心算出一個201位數(916748676920039158098660927585380162483106680144308622407126516427934657040867096593279205767480806790022783016354924852380335745316935111903596577547340075681688305620821016129132845564805780158806771)的23次方根,而用來驗證結果的UNIVAC 1108計算機還花了1分鐘、13000條指令才完成任務。1977年她在達拉斯與計算機同台競技,在幾秒內算出332,812,557的立方根。
現在的個人電腦算這個0.001s也用不了吧
心算不可能比計算機快。所謂電視上的心算比計算機快,都是這樣的:
1. 和手持計算器比賽。手持計算器大家都用過。遇到複雜計算真需要算個幾秒鐘的。優點是耗電量真的超小,紐扣電池也能用幾年。而現在的手機一秒鐘做個幾百萬幾千萬次運算不在話下,更不要說台式機或者集群了。
2. 出題人口述題目,操作者手工把數字輸入計算器,同時心算者聽題並計算。這裡面大部分時間都花在手工輸入按按鈕上了。而操作者輸入往往也不熟練。所以心算在這裡是佔了很大的便宜的。
有人提到Shakuntala Devi。在1977年,她曾經在比賽中擊敗UNIVAC 1101。UNIVAC 1101是1950年代建造的真空管計算機。其計算能力估計和現在的高級手持計算器有一拼。至於為什麼在1977年要和195x年造的計算機比賽,我就搞不清楚了。大腦和計算機的結構相當不同。比如說,在計算機里,從 0x00001 到 0x00002 移動數據,和從 0x00001 到 0x0FFFF 移動數據,速度是相同的。這就是基於中央處理的 universial memory。而在大腦中,相鄰的兩個神經元,和從大腦這邊到那邊的神經元,信息的傳輸速度,甚至能不能傳輸信息,都是不一定的。
另外,如果既要從 0x00001 到 0x00002 移動數據,又要從 0x00001 到 0x0FFFF 移動數據,計算機必須分兩次順序執行。而大腦神經元交互是高度並行的。
大腦能進行什麼工作,人類遠遠不了解。一般認為大腦更適合 pattern recognition 這樣的工作,不適於數字計算。可是誰知道呢。
說人腦不如電腦快的,Google 一下:Shakuntala Devi。因為出的題太簡單。
你出個1+1試試,除了智力有問題的,都比電腦算的快。大概是手搖機械計算機吧。加減法速度還不錯,乘法還湊合。可是除法特別慢,手搖的話要搖半天,是個體力活。不過也有電動機械計算機,不用你手搖了,電機驅動。但是速度還是不咋的。
人腦在計算特定問題上比2015年的個人計算機要強。
甚至比2015年的超級計算機要強。但是必須要是特定的那一類問題:
比如模式識別
比如自然語言處理……這些研究,現在有一些成果,但是效果和人比起來還是差太遠了。但是強不一定是快,計算機搞這些主要是一個準確率的問題。
谷歌翻譯一本小說絕對比人快,然而翻譯質量就呵呵了。當然這個問題也可能並不是計算機的原因,
是我們人類太弱了,沒辦法設計出把這些問題準確轉化成數值計算的演算法。也許有了特定的演算法,超巨甚至PC就可以和人類一樣準確了呢?純粹數值計算人比計算機快……等等,你說的計算機難道是……算盤?
反正2015年的i7處理器在數值計算上是不可能輸給人類的。就是有人覺得自己的眼睛會飛出去,覺得計算器運算是從你按第一個鍵的時候開始。
有些答案說記憶的,我會告訴你獲取記憶也是一種運算?只是這個數學式在你的思維中變成了一個值而已,要不要比一比從神經元索引記憶和從寄存器中取一個值哪個更快?什麼?你跟我說不算數寄存器里哪有值?難道你一生下來就有記憶了?不管是算數還是取值,你真的天真到以為能戰勝計算機?
當然我還是有必要說一句,這些比的根本就不是你神經元的速度,而是你思維的速度,從底層來看,神經元還是很高效的,但不是你可控的,你的思維本就是建立在一系列複雜的運算之上,可以說是一種軟體,你這就好比在 Minecraft 里用紅石電路組裝的 Word 也敢跟 Microsoft Office Word 比?
同理,電腦軟體的神經元照樣比人腦硬體的神經元要辣雞,軟硬相比本來就沒有任何意義,因為答案是顯而易見的,起碼以當前的條件來判斷。因為還要把數字手動輸入一遍,按起來多費時啊。
那要看和什麼計算機相比。
一個經典的例子是圍棋,這個,目前頂尖棋手的「心算」還是要強於計算機的。這還是要歸功於人類思維方式和計算機處理問題方式的不同。
不過
也不要把問題看得太死,計算機里也是可以有神經元的,噹噹噹噹,這就是這幾年的熱點之一——深度學習乾的事情啦,靠深層的神經網路來讓計算機處理一些本來
只有人類擅長的事情。以前很多計算機處理的難點如人臉識別,現在的效果都和過去有了天壤之別。好像也有人用這個來試圖處理圍棋,不過目前只有一些很初步的結果。
說到這裡,好像題主和很多答主舉的例子都是對著計算機輸入太慢了導致人腦勝出……不過計算機視覺再發展一點,你不再要手工輸入算式,讓電腦看一眼就行了,這就真沒得比了。
不管怎麼說,「計算機就是確定性的,非0即1的,人類就是神經元的,微妙的」,這種觀念必然過時了。只要一個設備計算速度夠快,硬去模擬另一個設備的計算方式也是沒問題的。
還有答主說「人腦是高度並行的,計算機是一條一條指令執行的」……同學你手機都八核CPU加顯卡了好不好。一個顯卡能同時算幾百個運算是很正常的事情。要不是並行程序難寫,計算機早就並行得滿天飛了。
如果限定到「四則計算」上,打死我我也不信人會比機器快。
反過來,如果把問題無限擴大化,我很好奇「哪些事情上人類的心算能力會堅持很長時間一直比電腦強」。寫小說的能力?寫程序的能力?做科研的能力?推理自己的另一半是不是有第三者了的能力?更新放到後面,以防戾氣太重,妨礙原答案分享的目的
--------------------原答案--------------------
終於遇見一個有足夠底氣答的問題了。
小學因為寶雞市教育局每年都舉辦小學生珠心算比賽,我們鳳翔縣只有我們學校辦了這個學習組,所以我們6個人每年都會代表縣級參加比賽。現在都大學畢業幾個月了,都是10多年前的事了。好,答正題。是這樣的,要看你怎麼比。
加減:如果你拿一個計算器挨個加20個五位數,我們用心算,你肯定比不過我們。我們用時不到10秒,你還得挨個按鍵,算兩個五位數不到1秒,你按鍵估計得有3,4秒。乘法:比如兩個三位數相乘估計用計算器也比不過我們,4位數時間應該差不多,5位數就是計算器贏了。
除法:比如5位除以2位還是我們快。除數位數越多我們越快,被除數位數越多我們越慢。估計6位除以兩位就計算器贏了,但6位除以3位還是我們贏。
我們心裡是怎麼算的?
不了解的話估計有人說我瞎吹,當時在小學就連同班外的同學都不信的。加減法:就是單純加減,練多了,計算腦容量就大了,5位加5位,so easy,真正的秒答,6位也是,7位沒練過這麼高位數。因為位數越高出錯概率越大,而且雖然比賽卷子最高有10位的數字,但有3位一分的分位符(西方人計數習慣),我們多數時間按分位符計算。
乘法:記得小時候學的時候老師管這種演算法叫一口清,此叫法來自於國家官方出版社的視頻資料,其實沒什麼演算法,和普通人上學學的基本一樣。只是我們把各位數相乘結果從前往後加,普通學生是從後往前加。比如278*936,我們腦子裡計算過程是,1872後移一位加6552再後移一位加7488,=260208。和普通演算法是一個本質,都是單位數乘法的加法。
除法:我忘了後來和同學在課堂上學的除法是怎麼回事了,沒準一樣沒有印象普通演算法是什麼樣。我們算除法,腦子裡先放著被除數,然後腦子自動匹配和除數合適的單位數,被除數從第一位數往後減去除數和單位數的乘積,以此類推,直到答案四捨五入保留2位小數。栗子,62857/328,我們腦子裡先放著62857,然後628-328,答案暫時得1,被除數變30057。再匹配9,3005-2952,答案暫時得19,被除數變537。匹配1,整數位答案確認為191,537-328,餘數得209。有餘數還要除,至四捨五入2位小數。大家應該都知道再往後除就是和整數除法一樣了,只是加小數點而已。
為什麼這麼快:啰嗦這麼多,其實這才是大家最關心的,無他,唯練習耳。我們6個從小學一年級入了隊,一直到6年級,不知道還有個東西叫雙休日的。白天其他人都是8點上課,我們是7點。練習一小時再去上課早讀,上課除了數學和語文自習外都得去練習,記得小時候自然課和思想品德課也要考試,也都不上,別說什麼音樂,畫畫,勞動,社會等課了,全去練習。不過雖然這麼說,但小學的副科每天就三節課,其他都是數學,語文和自習。放學後接著練習,不到天黑基本是不停的。周末繼續,周末好的一點是放學時間和其他人平日放學時間一樣,不用到天黑。寒假暑假?比賽就在暑假比賽前肯定就是玩命了。比賽完還能歇歇,但也僅限於比賽名次沒有退步的情況下。小學三年級暑假比賽我們沒拿到市裡三等獎,玩了一年命,從沒有過假期,大年三十和初一都練習半天才完。(寒假那個冷,空空的教室,寶雞雖然正好在秦嶺北,市區有暖氣,但我們在農村。記得有一天暑假下大雪,我三年級語文考試把她兒子交給我們珠心算老師,也想學學了一上午,放學回家路上就嚎啕大哭,孩子被凍得受不了。)平時練習任務重到逼死人。我最多的時候有天下午放學練習完回家晚上8點多(陝西夏天8點半天黑)吃完飯9點開始完成單乘任務,手一秒不停的寫了3個多小時,到12點多。看官腦子想像一個excel表格,所謂單乘就是20個互不相同的5位數豎行排列,分別乘以2,3,5,9作為一張單乘,再分別乘以4,6,7,8作為一張單乘。你想想你用2乘一個五位數多久,20個呢。再用3乘呢,5呢,9呢。邊算還得邊寫。我們當時最快是5分鐘一張,這個速度的限制還不是心算沒法再快,而是手一刻不停寫,寫完20個5位被乘數和80個6位乘積最快用時5分鐘。當時快到單乘看一眼就出結果,手根本不用停,能寫更快最好。一個小時最快完成12張,4個小時就是48張,這還要一刻不停的寫。別的啥都不敢。當時好長一段時間每晚都這麼過,現在想想作為小孩子,負擔太太太重了。好幾回我爸在旁邊陪我,堅持不住,去睡,後來聽見我哭呢,起來一看,筆還在手裡,腦袋已經趴桌子上睡著了,不知道夢見什麼竟然在哭。發生好幾回這種情景。
好了,說這麼多當時的生活,總之一句話就是,沒有苦練,心算是快不起來的。現在也沒必要像我當時那麼苦練,興趣最重要!何況現在計算設備這麼發達了。手機碼字沒什麼排版,先湊合看
---------------------------------------------------更新------------------------------------------------------
看見評論有人說只是比手指快,我寫答案的時候也有這麼覺得,但是現在想了想,真不一定
因為刨除計算機的輸入過程,也要刨除我們的輸入過程才公平。而這方面人類是天然的牛逼一步的,我看見數字了就看見了,電腦必須要輸入,不輸入怎麼計算如果單單比計算過程,比如我上面說的單乘,我們看見數字就出結果的。這個真不好比快慢。你下拉execl表格秒出,我們也是秒出。
如果算入輸入過程,單乘如58639*6,我們算單乘只需要看見一個數字就行,接受輸入很簡單。電腦不打字讓他計算,不現實啊。哪怕siri,說一個五位數也乘以6也得一秒,siri的小話筒繞幾個圈,快慢對比已經出現了!人工智慧發展以後估計會讓siri也秒答,但你和它溝通輸入不可能比人類眼睛的接受輸入更快!
計算我們的接受輸入過程,不計算電腦的,這比起來不公平的。如果再算上輸出過程,電腦肯定秒殺我們,不然人類發明印表機幹嘛。而且印表機列印一張單乘肯定快過我5分鐘寫一張。
--------------------更新---------------------
歡迎大家討論,但是我會刪除我認為是單純找存在感的
戾氣較重的更新:
在評論區看到各種找存在感的(這樣的人已經被我刪除評論了),只想對這種人說go fuck youself!要討論就好好討論,我陪。別只會下結論,沒有一點具體實例。有人說語音輸入、掃描,電腦一樣比我看題快。拜託,請舉實例啊。生活中我看題就懂了,你讓電腦掃一下就開始答題啊!即使可以做到,你的電腦能做到嗎?有幾個人的電腦能做到?即使這樣從掃描到答題結束,你倒是給出個時間啊,你要是做過實驗了,請拿出來我們討論,屁都沒有,請shut up好嗎!或許有人又要說語音輸入了,那你做實驗輸入算完題得出時間來比啊,沒有做過實驗,就說電腦就是快,電腦就是快,你丫心理沒病就是腦子有病!連身邊可以用到的siri都不想用來做個實驗,請閉上你的臭嘴好嗎!shut up好嗎!我原答案里說即使語音輸入,說完話siri還得畫幾個圈做反應。有人又評論Siri要聯網,言下之意是畫圈是因為聯網在花時間?你丫腦子銹了嗎?不聯網,你用你的pc給我識別完再答題試試?沒有蘋果的資料庫,你真以為電腦的高低電平就可以識別你的話了?我答這個題目是因為題主問「為什麼有人心算比電腦快?」我的理解是只要存在一種比電腦快的現象,那就值得拿出來和各位知友分享。that"s all!於是我寫了我的經歷和我珠心算時候怎麼算的,畢竟非常多的知友沒有類似經驗。於是各種無聊的人也來了。
還不是比輸入@#¥#……¥%……計算機就是比你快#¥%#¥……¥%……電腦輸入還可以掃描#¥@#¥@#@電腦輸入還能語音輸入,我這兒n篇語音輸入的論文呢@#¥@#%¥#%¥代表觀點基本是:我和計算機比的只是輸入方式而已,而且比的是計算機輸入最慢的鍵盤輸入。計算上我不可能比計算機快。是,如果純運算,計算機比人牛逼,不然人類要它何用。但是難道只有一個人的人腦在加減乘除開方階乘矩陣全方面碾壓電腦的時候才可以拿出來和大夥分享嗎?一個單方面就不行?就還是電腦比人腦快?既然這樣,你讓電腦有情感能力讓我看看!讓電腦全方面碾壓人腦啊,人腦的平衡,情感各種高級別計算能力,你讓電腦碾壓試試啊!既然電腦也做不到全面碾壓,憑什麼說電腦就快過人腦!有人單拿出cpu的各種數據,等等各種理論來比,是那麼比嗎?你把cpu扔你家給你打掃個房間看看啊。如果只說在理想狀態下,比電腦和人腦的中樞運算最高速度,電腦的計算用高低電平,所以這種理想狀態下,不管內存速度能不能更上,不管軟體寫的如何,不管輸入是否合理,實質cpu的運算快慢就是cpu電平改變的最大值(cpu內部運算我不懂,說錯了歡迎指正)。人腦神經元的信息傳遞不也是腦電波嗎?那這種理想狀態下,不就是電和電比,比傳播速度嗎?比你妹啊,你告訴我,電還分兩種,一種比另一種的傳播要慢!?
這樣的問題,比理論狀態有什麼可比的?!理論狀態就是比電的傳播速度,那別比了,理想狀態就是30萬公里每秒。任何電都一樣
題主這樣的問題,我個人認為只有在實際場景中才有可比性。我也這麼分享了我的經歷,不認同的請拿出實際場景中你得出的實際時間咱們來比,別秀自己的無知好嗎?我沒功夫陪你玩
所以就是在實際場景中,我有完勝電腦的時候。
1、平時生活里遇到的算術問題,我就是比電腦快啊!這不能拿出來和大夥分享嗎?不管單純比運算還是加上輸入過程一起比,我在實際場景中就是要快過電腦啊!不服你咬我啊!2、刨除輸入部分,單論運算,我也有和電腦不相上下!『單乘』。5位數(包括2,3,4,5,6,可能7位以上也行,只是我們當時沒這麼做過,現在不訓練有退步,我說話又不能不嚴謹,所以就只這麼說。想找存在感的,你要說我只能限定6位數以下,隨你)乘以單個一位數,比如87465*3,我就可以做到看到就出結果,我自己根本意識不到腦子的運算,一看到了,結果立馬就出了。到底有多快,我也不知道。倒是不一定沒有道理,畢竟說的是心算(就是大腦的速度),所以人的IO是不應該算進這個時間裡的。 也許在一些模式識別的問題上人腦真的比計算機快。
推薦閱讀:
※如果英特爾一直以擠牙膏的方式研發 CPU,CPU 的性能是否會進入一段停滯期?
※Windows的cmd都有哪些奇技淫巧?
※Intel 为何在家用 i5 桌面端以上的处理器中一直保留核显?
※计算机系学生想从事金融行业,如何起步?
※哪裡可以學到最新的計算機技術,比如網站、雜誌?