非圖靈機是什麼意思?

General 更新 2024-11-20

圖靈機不是真空管機器,那圖靈機是什麼

抽象的計算機模型

什麼是函數式編程思維

1.表達式化

最初的時候,需要轉變觀念,去可變量,去循環,把命令式改成表達式,注意,這只是把你丟在荒山野嶺讓你感受一下,離開熟悉的環境,地球依然在轉,但是有個

重點,那就是一切都是表達式; 為什麼是表達式呢?這個問題就像為什麼魚在水裡?

因為函數式建立在lambda演算之上而非圖靈機,只不過兩者被證明等價,所以你可以在你的機器上跑全是表達式的代碼,就如有人證明天空適合魚生存,所以

魚可以在天上游

當你接受了魚可以在天上游之後,就該上正餐了

1.5 數據與行為分離

這也是和麵向對象不一致的地方,面向對象強調數據與行為綁定,但函數式不是,確切的說函數式 函數與數據等價,所以你才可以將函數當參數與返回值,你在設計時,切勿讓數據自己長腿能跑,其次,行為必須消除副作用,不可以偷偷把數據改了,習慣第一條後,應該不會的

2.高階邏輯

了函數式,就不要在想循環,賦值這些低階邏輯了,而應該更高階的思考問題,這比轉化表達式更難,函數式又叫聲明式,也就是你要做什麼,只要說一下就行,而

非寫個遍歷,做個狀態判斷,用函數式你不需要考慮這些,你不知道函數式的列表是怎麼遍歷的,中間向兩邊?

從後往前?這也是為何函數式適合併發的原因之一,你想知道列表中大於3的數有多少,只要,list.count(_ > 3)

而不是寫循環,你可以直接寫你的業務,不要拘泥於細節,有點像sql, 你需要什麼告訴電腦就行,你或許會問,count foreach filter

這些函數怎麼來的? 因為有了他們你才不需要寫循環,他們把你留在高階邏輯中,這個問題的答案請看下面

3.組合子邏輯 或又叫 自底向上的設計

數式和OO是反的,面向對象是自頂向下的設計,函數式是自底向上的設計,也就是先定義最基本的操作,然後不斷組合,不斷堆積以滿足你的所有需要,如sql

定義了select, from, where...這幾個組合子,來滿足你的查詢需求,同理函數式語言會提供foreach,

map等組合子(操作)來滿足你的需求,所以你必須自下而上的設計你的代碼結構,並且滿足你的需求,當你只用組合子寫代碼時,你會發現你寫的全是高階邏輯

果這些已有組合子滿足不了你,你就得自己寫,foreach不行,你就自己寫遞歸,我告訴你,遞歸背後也是組合子,這裡一些'大神'應該不知道,在圖靈機

裡,遞歸就是方法不斷調用自己沒什麼好說的,但是在lambda演算中,匿名函數是沒法調用自己的,所以遞歸是用Y組合子(又叫不動點組合子)把遞歸函數

自己求解出來再調用的,這才可以實現遞歸,並與圖靈機的循環等價,有點跑題了,總之要想順手的寫函數式,最好用面向組合子的設計,注意,不是必須,組合子

演算和lambda演算可以相互轉化,也就是,你完全可以寫一堆雜亂的表達式,但沒有組合子邏輯來得清爽,Haskell大規模使用monad這個特殊組

合子,始其變得統一整潔

好了,總結一下

函數式思維,其實就是組合子邏輯,用簡單的幾個函數組合來構建複雜邏輯,始終以高階的角度去表達問題,而非依賴副作用。

知道這點,你用java也可以寫函數式代碼了

什麼是圖靈機?

圖靈機,又稱圖靈計算、圖靈計算機,是由數學家阿蘭·麥席森·圖靈(1912~1954)提出的一種抽象計算模型,即將人們使用紙筆進行數學運算的過程進行抽象,由一個虛擬的機器替代人們進行數學運算。

所謂的圖靈機就是指一個抽象的機器,它有一條無限長的紙帶,紙帶分成了一個一個的小方格,每個方格有不同的顏色。有一個機器頭在紙帶上移來移去。機器頭有一組內部狀態,還有一些固定的程序。在每個時刻,機器頭都要從當前紙帶上讀入一個方格信息,然後結合自己的內部狀態查找程序表,根據程序輸出信息到紙帶方格上,並轉換自己的內部狀態,然後進行移動。

阿蘭·麥席森·圖靈是英國數學家、被稱為計算機科學之父

阿蘭·麥席森·圖靈(Alan Turing,也被譯作阿蘭-圖林)生平簡介:

1912年6月23日,出生於英國倫敦。

1931年-1934年,在英國劍橋大學國王學院(King's College)學習。

1932年-1935年,主要研究量子力學、概率論和邏輯學。

1935年,年僅23歲的圖靈,被選為劍橋大學國王學院院士。

1936年,主要研究可計算理論,並提出“圖靈機”的構想。

1936年-1938年,主要在美國普林斯頓大學做博士研究,涉及邏輯學、代數和數論等領域。

1938-1939年,返回劍橋從事研究工作,並應邀加入英國政府破譯二戰德軍密碼的工作。

1940年-1942年,作為主要參與者和貢獻者之一,在破譯納粹德國通訊密碼的工作上成就傑出,併成功破譯了德軍U-潛艇密碼,為扭轉二戰盟軍的大西洋戰場戰局立下汗馬功勞。  1943年-1945年,擔任英美密碼破譯部門的總顧問。

1945年,應邀在英國國家物理實驗室從事計算機理論研究工作。

1946年,這個時候,圖靈在計算機和程序設計原始理論上的構思和成果,已經確定了他的理論開創者的地位。由於圖靈的傑出貢獻,年輕的他被英國皇室授予OBE爵士勳銜。

1947年-1948年,主要從事計算機程序理論的研究,並同時在神經網絡和人工智能領域做出開創性的理論研究。

1948年,應邀加入英國曼徹斯特大學從事研究工作,擔任曼徹斯特大學計算實驗室副主任。

1949年,成為世界上第一位把計算機實際用於數學研究的科學家。

1950年,發表論文“計算機器與智能”,為後來的人工智能科學提供了開創性的構思。提出著名的“圖靈測試”理論。

1951年,從事生物的非線性理論研究。年僅39歲的圖林,被選為英國皇家學會會員。

1952年,在當年保守愚昧和冷戰的時代,當警察得知圖靈與同性朋友密切交往的消息之後,同性戀傾向的圖靈被逮捕入獄。在法庭審判過程中,圖靈明確告知人們,他認為自己沒有做錯什麼事。在那個觀念落後的年代,為了避免被判刑入獄,圖靈被迫選擇了為期一年的雌性激素注射的所謂“治療”,才得以重新返回研究工作。

1953年-1954年,繼續在生物和物理學等方面的研究。被迫承受的對同性戀傾向的“治療”,致使原本熱愛體育運動的圖靈在身心上受到極大的傷害。

1954年6月7日,圖靈被發現死於家中的床上。死因是氰化物中毒,警方調查結論是自殺。一代英靈,就此過早離去,成為人類科學史上的一大遺憾。

阿蘭-圖靈(Alan Turing,也被譯作阿蘭-圖林)生平簡介:

1912年6月23日,出生於英國倫敦。

1931年-1934年,在英國劍橋大學國王學院(King's College)學習。

1932年-1935年,主要研究量子力學、概率論和......

圖靈機與現代計算機的關係

圖靈機的意義與思想內涵:

圖靈提出圖靈機的模型並不是為了同時給出計算機的設計,它的意義我認為有如下幾點:

1、 它證明了通用計算理論,肯定了計算機實現的可能性,同時它給出了計算機應有的主要架構;

2、 圖靈機模型引入了讀寫與算法與程序語言的概念,極大的突破了過去的計算機器的設計理念;

3、 圖靈機模型理論是計算學科最核心的理論,因為計算機的極限計算能力就是通用圖靈機的計算能力,很多問題可以轉化到圖靈機這個簡單的模型來考慮。

對圖靈機給出如此高的評價並不是高估,因為從它的設計與運行中,我們可以看到其中蘊涵的很深邃的思想。

通用圖靈機等於向我們展示這樣一個過程:程序和其輸入可以先保存到存儲帶上,圖靈機就按程序一步一步運行直到給出結果,結果也保存在存儲帶上。

另外,我們可以隱約看到現代計算機主要構成(其實就是馮諾依曼理論的主要構成),存儲器(相當於存儲帶),中央處理器(控制器及其狀態,並且其字母表可以僅有0和1兩個符號),IO系統(相當於存儲帶的預先輸入);

什麼是函數式編程思維

回答都有跑題,show概念之嫌,題主問的是函數式思維,這個問題我一直在思考,畢竟是方法論,能力有限,只能從切身實踐告訴你

1.表達式化

最初的時候,需要轉變觀念,去可變量,去循環,把命令式改成表達式,注意,這只是把你丟在荒山野嶺讓你感受一下,離開熟悉的環境,地球依然在轉,但是有個

重點,那就是一切都是表達式; 為什麼是表達式呢?這個問題就像為什麼魚在水裡?

因為函數式建立在lambda演算之上而非圖靈機,只不過兩者被證明等價,所以你可以在你的機器上跑全是表達式的代碼,就如有人證明天空適合魚生存,所以

魚可以在天上游

當你接受了魚可以在天上游之後,就該上正餐了

1.5 數據與行為分離

這也是和麵向對象不一致的地方,面向對象強調數據與行為綁定,但函數式不是,確切的說函數式 函數與數據等價,所以你才可以將函數當參數與返回值,你在設計時,切勿讓數據自己長腿能跑,其次,行為必須消除副作用,不可以偷偷把數據改了,習慣第一條後,應該不會的

2.高階邏輯

了函數式,就不要在想循環,賦值這些低階邏輯了,而應該更高階的思考問題,這比轉化表達式更難,函數式又叫聲明式,也就是你要做什麼,只要說一下就行,而

非寫個遍歷,做個狀態判斷,用函數式你不需要考慮這些,你不知道函數式的列表是怎麼遍歷的,中間向兩邊?

從後往前?這也是為何函數式適合併發的原因之一,你想知道列表中大於3的數有多少,只要,list.count(_ > 3)

而不是寫循環,你可以直接寫你的業務,不要拘泥於細節,有點像sql, 你需要什麼告訴電腦就行,你或許會問,count foreach filter

這些函數怎麼來的? 因為有了他們你才不需要寫循環,他們把你留在高階邏輯中,這個問題的答案請看下面

3.組合子邏輯 或又叫 自底向上的設計

數式和OO是反的,面向對象是自頂向下的設計,函數式是自底向上的設計,也就是先定義最基本的操作,然後不斷組合,不斷堆積以滿足你的所有需要,如sql

定義了select, from, where...這幾個組合子,來滿足你的查詢需求,同理函數式語言會提供foreach,

map等組合子(操作)來滿足你的需求,所以你必須自下而上的設計你的代碼結構,並且滿足你的需求,當你只用組合子寫代碼時,你會發現你寫的全是高階邏輯

果這些已有組合子滿足不了你,你就得自己寫,foreach不行,你就自己寫遞歸,我告訴你,遞歸背後也是組合子,這裡一些'大神'應該不知道,在圖靈機

裡,遞歸就是方法不斷調用自己沒什麼好說的,但是在lambda演算中,匿名函數是沒法調用自己的,所以遞歸是用Y組合子(又叫不動點組合子)把遞歸函數

自己求解出來再調用的,這才可以實現遞歸,並與圖靈機的循環等價,有點跑題了,總之要想順手的寫函數式,最好用面向組合子的設計,注意,不是必須,組合子

演算和lambda演算可以相互轉化,也就是,你完全可以寫一堆雜亂的表達式,但沒有組合子邏輯來得清爽,Haskell大規模使用monad這個特殊組

合子,始其變得統一整潔

好了,總結一下

函數式思維,其實就是組合子邏輯,用簡單的幾個函數組合來構建複雜邏輯,始終以高階的角度去表達問題,而非依賴副作用。

知道這點,你用java也可以寫函數式代碼了

但是,這也只是本人積累得來的感悟,絕不敢大肆伸張這就是函數式,我也在不斷研究中,如有問題,還望大神指正...

簡介一下馮諾依曼機與圖靈機

馮諾依曼機是物理學家假象的一種完美的複製機器,具體原理如下:機器本身會完全複製一個與自己一樣的機器,然後將複製的那臺發送出去,然後被髮送的複製品會繼續複製,然後繼續發射,重複以上過程,那麼整個群體會以幾何群體的數量遞增,如果真的發明了話,對幫助人類探索宇宙有極大的好處.圖靈機的概念來源與圖靈測試,簡單的說就是判別在互聯網上與你對話的是人還是智能程序,該測試會盡量發送複雜的語句,然後從反應中來判別是是還是智能程序,若通過了圖靈測試,意味著是真人或者該智能程序非常成功

從圖靈機的角度來看,什麼是可計算的,什麼是不可計算的

非學科題

圖靈機的工作原理 10分

普適圖靈機的概念。雖然其細節是複雜的,但是它背後的原則並不十分複雜。它的基本思想是把任意一臺圖靈機T的指令的表編碼成在磁帶上表示成0和1的串。然後這段磁帶被當作某一臺特殊的被稱作普適圖靈機U的輸入的開始部分,接著這臺機器正如T所要進行的那樣,作用於輸入的餘下部分。普適圖靈機是萬有的模仿者。“磁帶”的開始部分賦予該普適機器U需要用以準確模擬任何給定機器T的全部信息!

為了瞭解這是如何進行的,我們首先需要一種給圖靈機編號的系統方式。考慮定義某個特殊的,譬如講在前面描述的圖靈機的一個指令表。我們必須按照某種準確的方案把這表編碼成0和1的串。我們可藉助於以前採用的“收縮”步驟來辦到。因為,如果我們用數2,3,4,5和6來分別代表符號R、L、STOP、箭頭(→)以及逗點,那麼我們就可以用110、1110、11110、111110以及1111110的收縮把它們編碼。這樣,出現在該表中的這些符號實際的串可以採用分別被編碼成0和10的位數0和1。由於在該圖靈機的表中,在二進位計數的結尾大寫的數的位置足以把大寫的0和1從其他小寫的阿拉伯數字中區分開來,所以我們不需要用不同的記號。這樣,1101將被讀成二進位數1101,而在磁帶上被編碼成1010010。特別是,00讀作00,它可毫不含糊地被編碼成0,或者作為被完全省略的符號。實際上我們可以不必對任何箭頭或任何在它緊前頭的符號進行編碼,而依靠指令的數字順序去標明哪些符號必須是什麼。儘管在採用這個步驟時,在必要之處要提供一些額外的“啞”指令,以保證在這個順序中沒有縫隙。這樣的做法具有相當好的經濟性。(例如,圖靈機XN+1沒有告訴我們對1100要做什麼的命令,這是因為這條指令在機器運行時從不發生,所以我們應該插入一條“啞”指令,譬如講1100→00R,它可合併到表中而不改變任何東西。類似地,我們應該把101→00R插入到XN×2中去。)若沒有這些“啞的”,表中後面的指令的編碼就會被糟蹋了。因為在結尾處的符號L或R足以把一條指令和另一條隔開,所以我們在每一指令中實際不需要逗號。因此,我們採用下面的編碼:

0表示0或0,10表示1或1,110表示R,1110表示L,11110表示stop。

作為一個例子,讓我們為圖靈機XN+1編碼(插入指令1100→00R)。在去掉箭頭和在它們緊前面的位數以及逗號之後,我們得到

00R 11R 00R 101R 110L 101R 01STOP

1000L 1011L 1001L1100R101R00R1111R

111R 1110R

為了和早先說的相一致,我們可以去掉每一個00,並把每一個01簡單地用1來取代,這樣得到

R11RR101R110L101R1STOP1000L1011L1

001L1100R101RR1111R111R1110R

如下是在磁帶上的相應的碼:

11010101101101001011010100111010010110101111010000111010010101110100010111010100011010010110110101010101101010101101010100110

我們總是可以把開始的110(以及它之前的無限的空白磁帶)刪去。由於它表示00R,這代表開頭的指令00→00R。而我已隱含地把它當作所有圖靈機共有的。這樣儀器可從磁帶記號左邊任意遠的地方向右跑到第一個記號為止。而且,由於所有圖靈機都應該把它們的描述用最後的110結束(因為它們所有都用R、L或STOP來結束),所以我們也可把它(以及......

相關問題答案
非圖靈機是什麼意思?
機靈鬼是什麼意思?
非煙毛利是什麼意思?
正則靈均是什麼意思?
婚姻有危機是什麼意思?
遊戲中炸機是什麼意思?
非常時期是什麼意思?
天機是什麼意思?
收割機風機是什麼意思?
微型單反機是什麼意思?