第一次作業
1.本學期編碼規范
一 版式
1.程序塊縮進 4 個空格,只能使用空格鍵,不能使用 TAB 鍵。
2.相對獨立的程序塊之間、變量說明之后必須加空行,函數之間也用空行分開。
3.一行只寫一條語句,if、for、do、while 等語句自占一行,且執行語句部分無論多少都要加括號 {}。
4.代碼行之內應留有適當空格,關鍵字之后要留空格,函數名之后緊跟左括號,二元操作符前后加空格,一元操作符前后不加空格。
5.程序塊的分界符 {和} 應各獨占一行并且位于同一列,同時與引用它們的語句左對齊。
二 注釋
1.源文件頭部應注釋生成日期、作者、模塊目的 / 功能等。
2.函數頭部應注釋函數的目的 / 功能、輸入參數、輸出參數、返回值等。
3.注釋應與其描述的代碼相近,對代碼的注釋應放在其上方或右方,變量、常量、宏的注釋應放在其上方相鄰位置或右方。
三 標識符命名
1.命名盡量使用英文單詞,力求簡單清楚,避免使用引起誤解的詞匯。
2.常量、宏和模板名采用全大寫的方式,每個單詞間用下劃線分隔。
3.函數名以大寫字母開頭,采用謂 - 賓結構。
2.數學之美感悟
從語言編碼到數學信息:一脈相承的本質探索
久未讀書卻因鄭琪老師的作業與《數學之美》相遇,這種 “偶然” 恰恰讓我對 “語言與信息” 的認知有了更鮮活的觸動。當我從 “編碼” 視角重新審視我們習以為常的語言 —— 無論是中文、英語,還是二進制與計算機語言,會發現看似迥異的表達形式下,藏著一脈相承的本質邏輯;而這種邏輯與數學、信息的互通,更像一把鑰匙,解鎖了我們對 “溝通與理解” 的全新認知。
一、語言的演進:一場持續千年的 “編碼優化”
作者將語言定義為 “信息的載體”,而人類對語言的打磨,本質上就是對 “信息編碼方式” 的不斷優化。從遠古的象形文字說起,古人用 “畫出來” 的符號對應現實事物 —— 比如甲骨文中的 “日” 像一輪太陽,“月” 像一彎月牙,這是最直觀的 “具象編碼”:符號與信息直接掛鉤,雖易懂卻效率低下,一個新事物就需要一個新符號,難以承載復雜思想。
直到拼音文字的出現,編碼邏輯發生了質的飛躍。就像我感受到的,中文看似是 “方塊字”,實則暗藏精密的編碼體系:韻母、拼音是 “聲音編碼”,把口語中的發音拆解成有限的音素,比如 “b-ā” 拼出 “巴”,用幾十個音素就能組合出成千上萬的音節;而筆畫則是 “形態編碼”,“橫、豎、撇、捺” 等基本筆畫,按照 “先橫后豎、先撇后捺” 的規則(也就是編碼的 “語法”),就能構成不同的漢字。這種 “拆解 - 組合” 的編碼邏輯,讓中文擺脫了 “一事一符” 的局限 —— 用有限的 “編碼元素”(音素、筆畫)和 “編碼規則”(拼音法則、書寫順序),就能承載無限的信息,這和英語用 26 個字母、遵循語法規則組成單詞與句子的邏輯如出一轍。
而到了計算機時代,這種 “編碼思維” 被推向了極致。二進制是計算機的 “基礎語言”,它只用 “0” 和 “1” 兩個元素作為編碼單元,卻能通過不同的排列組合,將文字、圖像、聲音甚至視頻轉化為機器能讀懂的信息;C++、Python 等計算機語言,則是在二進制之上的 “高級編碼”—— 它們用 “if…else…”“for 循環” 等語法規則(也就是解編碼的算法),把人類的邏輯指令轉化為計算機能執行的操作。我發現,從象形文字到計算機語言,編碼的 “載體” 在變(符號→字母→二進制→代碼),但 “用有限元素 + 固定規則承載無限信息” 的本質從未改變,這正是人類溝通效率不斷提升的核心邏輯。
二、數學與信息:串聯所有語言的 “隱形紐帶”
當我意識到 “語言本質是編碼” 時,會發現數學與信息恰是串聯起所有語言的 “隱形紐帶”—— 無論是我們口中的自然語言,還是計算機運行的機器語言,其底層邏輯都能在數學中找到依據,而 “信息傳遞” 的過程,更是數學規律的具象化體現。
作者提到 “人類的通信過程類似于現代通信模型”,這一點在語言與數學的互通中尤為明顯。比如我們用中文交流時,說話人要先把想表達的 “信息”(比如 “今天天氣很好”),按照中文的語法規則(編碼算法)轉化為 “文字或聲音”(編碼結果);聽話人接收到 “文字或聲音” 后,再用同樣的語法規則反向解碼,還原出原本的信息 —— 這個過程,和現代通信中我學習的通信原理中的 “發送端編碼→信號傳輸→接收端解碼” 的模型完全一致,而數學中的 “信息論”,正是用概率、熵等概念,精準量化了 “編碼效率” 和 “信息損耗”(比如一句話沒說清楚導致的誤解,本質就是信息在解碼時出現了損耗)。
再看計算機語言與數學的關聯,這種互通就更直接了。Python 中的 “列表”“字典”,本質是數學中 “集合” 概念的應用;C++ 中解決復雜問題的 “遞歸算法”,源自數學中的 “歸納推理”;甚至二進制本身,就是數學中 “數制” 的一種(我們日常用的十進制是 “逢十進一”,二進制是 “逢二進一”)。我們學習計算機語言時會發現,掌握數學邏輯的人,往往能更快理解代碼的核心 —— 因為代碼只是數學邏輯的 “語言表達”,而數學才是所有編碼規則的 “底層邏輯”。
就連我們從小學習的中文,也藏著數學的影子。比如漢字的 “筆畫數” 是量化的數學概念,“偏旁部首的組合規律” 暗合數學中的 “分類與組合”;甚至成語中的 “舉一反三”“四面八方”,也是用數字簡化信息、提升表達效率的體現。這種 “語言→編碼→數學” 的層層遞進,讓我們突然明白:原來我們每天都在 “用數學的方式溝通”,只是過去從未用 “編碼” 的視角去拆解這份熟悉。
三、日常應用:用 “編碼類比” 解鎖更高效的理解方式
當我們看清 “語言是編碼、數學是底層邏輯” 的本質后,這種類比思維能幫我們在日常學習和生活中,更高效地理解陌生事物 —— 無論是學一門新語言,還是理解一個復雜的信息概念,都能從 “編碼元素”“編碼規則”“數學邏輯” 這三個維度切入,找到突破口。
比如我再學習一門新的外語(比如日語),就不會再局限于 “背單詞、記語法” 的表面 —— 而是先找到它的 “編碼元素”(五十音圖相當于日語的 “拼音”,是聲音編碼的基礎),再掌握它的 “編碼規則”(比如日語中 “主語 + 賓語 + 謂語” 的語序,區別于中文的 “主語 + 謂語 + 賓語”),最后關聯到數學邏輯(比如不同語序本質是 “信息排列順序” 的差異,類似于數學中 “排列組合” 對結果的影響)。這種思路能幫我們跳出 “死記硬背”,從 “理解本質” 的角度掌握語言,效率會大大提升。
再比如面對復雜的信息(比如一份數據分析報告),我們也能用上這種類比:報告中的 “數據” 相當于 “編碼元素”,“數據分析方法”(比如柱狀圖、折線圖)相當于 “編碼規則”,而背后的 “統計邏輯”(比如均值、方差)就是數學底層。當我們用 “解碼” 的思維去看報告,就不會被密密麻麻的數據嚇到,而是能快速抓住 “數據如何通過規則轉化為信息”,讀懂報告想傳遞的核心觀點。
甚至在日常溝通中,這種思維也能幫我們減少誤解:當對方說的話我們沒聽懂時,不妨想想 “是不是編碼規則出現了偏差”—— 比如對方用了某個我們不熟悉的 “行業術語”(相當于特殊編碼),或者你們對某個詞的理解不同(相當于解碼算法不一致)。這時只要主動確認 “編碼元素”(某個術語的含義),統一 “解碼規則”(對詞語的共識),溝通就能更順暢,這正是 “編碼類比” 在生活中的實用價值。
回過頭看,《數學之美》最精妙的地方,或許就是幫我們打破了 “語言”“數學”“信息” 之間的壁壘 —— 讓我們意識到,那些看似獨立的知識領域,實則是同一種本質邏輯的不同表現。就像你感慨的,從中文的韻母筆畫,到英語的語法規則,再到計算機的二進制代碼,語言的本質一脈相承;而這種 “編碼邏輯” 與數學、信息的互通,更讓我們在看清世界運行規律的同時,擁有了更通透的理解方式。這種認知上的 “頓悟”,或許就是讀書最珍貴的意義 —— 它讓我們在熟悉的事物中,看到從未發現過的深度與關聯。

浙公網安備 33010602011771號