計算機領域有哪些精妙絕倫的設計?

時間 2021-05-06 23:56:09

1樓:文武

最近複習作業系統…

置換演算法…opt fifo lru time感覺每個演算法都精妙絕倫

頁表塊表的設計

磁碟排程演算法…sstf scan c-scan組成原理…

從暫存器到cache

從三態門到匯流排

感覺計算機本身從硬體到軟體

從系統呼叫到使用者介面…每乙個都是精妙絕倫…當然,背起來就沒那麼精妙絕倫了

2樓:蔣甬杭

CPU晶元的製造工藝。

22奈米,兩公釐的十萬分之一。

在那麼小的地方密密麻麻刻出上億個元器件而基本不出錯,還得大批量低成本。否則現在哪來的漫山遍野智慧型裝置。

用高度聚焦的光來改變塗層區域性的化學性質,然後洗掉塗層,順便洗掉金屬部分,剩下的就是電路。

還能塗好幾層,讓電路重疊但不相連。

3樓:Bing

樹形結構:包括Trie, 各種二叉樹(紅黑,線段樹等),B樹,M樹等,充分解決了快速查詢和快速更新的需求;

Copy-on-Write: 執行緒,git,docker image,以及各種快照實現;

遞迴/分治: 無處不在;

namespace: 概念簡單,但是接觸的大部分的虛擬化或者隔離都是基於namespace的思路來做得。

編譯器: 從NFA->DFA->LR->constant folding,liveness,SSA等-> register alloaction,linker等一系列的流程都非常的充滿了各種技巧。

Rust的ownership。

先想到這麼多。

4樓:海淀遊民

CPU 算減法,實際上是取補數算加法,省了個專門的減法器晶元都是用 nand 門組成的,因為 nand 門成本最低齊次方程,和平面幾何打輔助線及虛數有異曲同工之妙淬火演算法,揭示了我們智慧型的本源,其實是擲骰子在誤差允許範圍內,用整型運算器計算浮點數,Quake 裡那個神奇的求平方根的演算法,就是這麼來的

5樓:

竟然沒人提到這個:

乙個貫穿硬體和軟體的理論,從齒輪計算機、打孔紙帶計算機一直到二十一世紀計算機都適用的理論,概括無數演算法本質的理論:

有限狀態機。

6樓:hamc勝

程式設計的邏輯思路是最神奇的。

if。。。。then

else if。。。

非計算機專業,程式設計都忘完了,估計語法都不對,但是這個邏輯卻很清楚。

最簡單的條件判斷和操作,感覺能解決絕大多數問題。

7樓:宇琊

運用離散對數傳遞私鑰。

他的效果是除了A和B各自心中想的乙個數字,他們兩個互相的所有交流資訊都是公開的。

然而只有他們才能通過這些資訊知道乙個共同的唯一的數字。

說實話我對數學一直是怕怕的,學著數學也很痛苦,不過在密碼學問題上,這他娘的誰想出來的,真是個天才。

8樓:灝灝

看到好幾次這個問題了,發現有人在說手機系統的一些細節,突然想起來我的手機也有個小細節,忍不住來發一次好了。

手機:魅族PRO7PLUS

系統:Flyme7.8

不說廢話直接上圖

看出來了麼?

9樓:撻拔胤

構建小型、單一的應用程式 —— 不管用什麼語言 —— 只做一件小而美的事情,用 stdin / stdout 進行通訊,並通過管道進行連線

10樓:靈野

汞延遲線

在電容式記憶體還沒有發明的年代,汞延遲線用來擔任記憶體的功能,利用汞中機械波的傳播來記錄資訊。

說實話,馮諾依曼結構計算機本身就很精妙

11樓:劉寧

程式設計很神奇,使用計算機語言,表達人的思想,計算機就能根據指令運轉起來,千變萬化,其樂無窮,能想到用軟體來控制硬體,真是神一般的想法。

12樓:張持水

這個……太~多了。不管你承認與否,電腦是現代科技最尖端的總和。無論航空航天,軍事,醫療,and so on.雖然只有短短幾十年歷史,但卻充滿智慧型

13樓:我永遠喜歡內田彩

大概就是不起眼的鬧鐘程式吧。

具體忘記了想起來再補。

大概就是如何做到在指定時間響,但又不過於消耗資源。尤其在老式功能機上面。

14樓:凌小路清隆

漢明碼與各種資料傳輸中的糾錯碼吧,第一次學的時候覺得想出這些的簡直不是人。

15樓:驚濤拍岸

《雷神之鎚3》中的平方根演算法。利用了乙個magic number與輸入數作了一次整型運算。運算結果作為初值後一次牛頓迭代即可得相當精確的近似解。

16樓:

德·摩根定律呀

∽(A∧B) ≡ (∽A)∨(∽B)

簡單來說就是,大家都知道計算機只有0和1的二進位制,而二進位制只有「與」,「或」,「非」三種運算。這個定律告訴了大家這「與」和「或」兩種運算可以轉化為一種,也就是可以用2種運算子算所有的二進位制數。

就像四則運算中:除乙個數 = 乘乙個數倒數這個定律厲害的地方並不在數學或者程式設計這類理論上,而是實際工業生產。如果你是工廠老闆,你大概會體會到3條流水線跟2條流水線之間能節省多少材料,空間,研發,維護等等的成本

17樓:

當然是重啟機制了。

無論是電腦小白,還是程式設計師(真的不會修電腦那種),遇到問題總會說,重啟一下試試。

當然,90%的問題都會通過重啟得到解決!

18樓:Butterfly

各種硬體單元計算控制儲存……

各種資料結構堆疊佇列 ……

各種演算法排序搜尋……

各種設計模式觀察訂閱工廠……

還有各種精妙資訊傳輸控制理論和實踐 :作業系統 *nix 圖形學編譯原理各種網路協議…… 太多太多

19樓:EighteenGirl

我覺得計算機本身得存在就是精妙絕倫的設計。

竟然有這種東西存在。

螢幕可以亮!

游標可以隨著滑鼠移動而移動!

可以瀏覽網頁!

可以獲取各種各樣的知識!

可以執行各種各樣的軟體!

可以在上面執行各種各樣的程式語言!

每種程式語言都能用各種各樣的形式呈現出來!

哎呀哎呀~~

編不下去了~~~

20樓:黃寶權

物理學上有乙個著名的理論「平行世界理論」,物理學上還沒有發現它,但卻在計算機領域出現了——Git。

《道德經》裡提到「道生一,一生二,二生三,三生萬物」,在計算機領域上是不是很像某種資料結構——二叉樹。

上帝在第六天造人的時候,誕生了亞當和夏娃,然後有了現在的人類,這不就是計算機領域的萬物之源嗎——1和0。

萬事萬物都是有聯絡的,所謂物質決定意識,計算機領域上的一些精妙絕倫的設計很多時候與世界的一些規律不謀而合,會讓你覺得世界真令人敬佩或敬畏。

21樓:inc1ude

借助棧實現函式呼叫時引數傳遞和返回位址的儲存,剛接觸的時候覺得太精妙了。

還有彙編中各個暫存器的配合,各個標誌位的作用,通過有限的單一功能就能實現各種各樣的複雜邏輯,真的太精妙了!

22樓:

很多設計都巧妙利用了現有設施的性質。隨便提幾個,按領域歸類。

Security:

眾所周知,cache 比記憶體快得多。基於這個事實,我們可以通過測量時間實現 cache 攻擊。攻擊者可以首先填滿 cache 的某個 set,然後讓程式 V 執行一會,之後訪問剛剛填入的所有 cache line。

如果某個 cache line 的訪問時間特別長,說明它被 V 換出去了,從而推斷出 V 訪問了這個位址。

Programming Language:

C++11 中的移動語義。如何判斷乙個物件是否可以被移動?首先右值基本都可以被安全地移走,然後想移動左值的話只要用 std::

move 轉成右值就可以匹配移動建構函式了。用乙個早就存在的概念「右值」作橋梁,非常漂亮地實現了移動語義。

Computer Networking:

traceroute 的實現。TTL 本來應該是防止 packet 在網路裡轉得太久用的,結果被拿來設計了追蹤路徑的工具。

NAT,利用傳輸層的埠概念實現 IP 位址的對映。

Computer Architecture:

訪問 L1 cache 用的是實體地址,但 CPU 產生的是虛擬位址,難道要先訪問 TLB 或頁表再回來訪問 L1?實際上,根據記憶體分頁的性質,虛擬位址和實體地址在一頁內的部分是一樣的,所以可以把 L1 的 set 數設定得小一點,從而可以用虛擬位址定位 L1 而同時查 TLB 或頁表,最後用實體地址來對比 tag。

其它的想起來再說……

23樓:

各種防呆設計

特別是D型口,簡單…從並口串列埠到VGA到HDMI 如此簡單的乙個設計,一直使用到今天。

另外就是顏色,耳機孔是綠色的,麥克風是粉色的??,印表機並口是玫紅的??,顯示器口是藍色的…

我跟爹媽說,一看顏色,二看正反,我爹媽都會插滑鼠攝像頭印表機

24樓:

Any problem in computer science can be solved by anther layer of indirection.

一切電腦科學的問題都可以通過新增中間層解決。

25樓:勝勳

滑鼠的出現=精妙絕倫

DOS年代的計算機只有鍵盤

鍵盤輸入指令,比如

「DIR」

「CD D:\GAME\」

「COPY D:\MM.TXT D:\GAME\」

26樓:

Python用於大數相乘的的卡拉祖巴(Karatsuba)演算法。(沒用中文學過數學/演算法所以用詞很生硬不好意思)

直到上世紀六十年代,兩個次數n的多項式乘積的最優計算複雜度都被認為是 .

卡拉祖巴將此複雜度優化為了

我們假設P和Q是兩個次數為n-1的多項式:

曾經被認為是最優的演算法將P和Q的每一項兩兩相乘,即:

,計算若環中計算 的複雜度為 ,PQ的複雜度就是

下面是 的卡拉祖巴遞迴演算法:

設 ,為了簡化問題我們假設n是2的正整數次方,ie.

我們可以把P拆分為乙個次數m的多項式加乙個次數m的多項式乘以 :

,同理:

那麼 (1)

直到這一步,這個演算法的複雜度還是:

,即:,

神奇的卡拉祖巴教授想出了乙個簡化PQ演算法的方法,我們先計算如下兩個n項式:

設神奇多項式

計算 需要 的複雜度,但是:

(1)公式中需要用到的 可以通過神奇多項式和 的差計算出來:

多項式的加法的複雜度線性於其次數,計算兩個n次項的和只需要 的計算複雜度,n足夠大時可以忽略不計

因為 已經被計算出來不需要重複計算,所以只需要計算神奇多項式

這一項的複雜度從 變成了單純的

而上面卡拉祖巴頂層分治的演算法計算複雜度公式,遞迴下來為:

你見過哪些精妙絕倫的廣告語?

起名策劃人顏儒玉 一切一切皆有可能 李寧運動服。李寧運動服 人生第一步!某品牌嬰兒鞋 鼓手廣告,響到做到!魯力 鼓手廣告 新正途 創新粵港澳,創意新正途!廣東新正途文化創意 企明星 幫助 企 業成為行業的 明星 顏儒玉 廣東企明星工作室 對乙個廣告人來說,廣告只分成兩類,一類是可以得獎的廣告,一類是...

計算機領域從事生物資訊的牛人有哪些?

竟然沒人說Eran Segal!去看看他的戰績就知道了,做到讓biologist聞風喪膽。cs轉bio我只服此人,其他某Kellis和Frey相比之下真的就是呵呵了。 Manolis Kellis,從Eric Lander 大牛,原先學數學的,現在是Broad Institude的頭兒 手下出來的,...

計算機領域有哪些 將錯就錯 被沿用至今?

我覺得 第0個 這種說法也是錯的,第幾個 是序數詞,序數詞的取值範圍應該是自然數,往往陣列第乙個元素編號為零,就容易在描述時使用 第0個 這種錯誤叫法。如果使用Pascal這種語言宣告陣列,陣列的下標可以是字串型別,難道這個時候我們要把第乙個元素叫做 第霸個 嗎 後來這種不嚴謹的叫法更擴充套件到一些...