摘要訊息 : The article guide of Jonny'Blog.
0. 前言
Jonny'Blog 目前已經發表了不少數量的文章, 但是由於 WordPress 並沒有一個綜合性的頁面來展示所有文章和文章簡介, 而大家無目標地尋找文章也比較麻煩, 因此 Jonny'Blog 製作了本篇文章導覽供大家參考. 大家可以根據文章導覽快速找到自己想要閱讀的文章.
文章導覽具體分類中呈現的文章將以發表時間順序, 從較早到最近進行排序. 第一節中幾乎所有未歸檔文章都會有詳細介紹, 第二節中展現了不帶有介紹的所有文章. 第一節中的內容較為緊湊, 第二節中的內容較為清爽. 如果閣下想以時間順序閱覽 Jonny'Blog 中的文章, 請訪問年度歸檔 (https://jonny.vip/archives-page/).
1. 介紹
1.1 電腦科學系列
電腦科學系列文章列表 : https://jonny.vip/category/computer-science/.
1.1.1 程式設計語言系列
程式設計語言系列文章列表 : https://jonny.vip/category/computer-science/programming-language/. 目前, 程式設計語言系列文章除了 C++ 之外, 還沒有引入其它程式設計語言的文章.
1.1.1.1 C++ 系列
C++ 系列文章列表 : https://jonny.vip/category/computer-science/programming-language/cplusplus/. 這個系列所有的文章預設都是以 C++ 11 為基礎, 涉及 C++ 98/03 之處會額外提及.
- 讀書筆記系列 : 這個系列沒有設立單獨的文章列表;
- 《C++ 學習筆記》: 記錄了學習書籍《C++ Primer》第五版的所有筆記, 包括型別, 表達式, 陳述式, 函式, 類別, 輸入輸出流, C++ 標準樣板程式庫容器, 記憶體配置與智慧指標, 函式與運算子的多載, 類別的繼承和虛擬繼承, 例外處理以及一些其它特性. 這篇文章主要記錄的是當時 Jonny 沒有學習過的部分, 所以沒有將全部 C++ 的內容呈現出來;
- 《《Effective C++》讀後感——從自己的角度講一講《Effective C++》》: 記錄了 Jonny 對書籍《Effective C++》的讀後感, 詳細描述了在 C++ 11 之後, 《Effective C++》中的建議應該如何進行調整, 哪些建議仍然適用.
- Template Meta-Programming (樣板超編程) 系列 : 這個系列沒有設立單獨的文章列表;
- 《【C++ Template Meta-Programming】認識樣板超編程 (TMP)》: 介紹了 C++ 樣板超編程中的基礎知識, 包括超函式的定義以及如何編寫一個帶有條件判斷或者迴圈的超函式;
- 《【C++ Template Meta-Programming】參數列表》: 介紹了 C++ 樣板超編程中, 超函式參數列表的具體構成;
- 《【C++ Template Meta-Programming】Traits 技巧》: 介紹了樣板超編程中常用的 traits 技巧;
- 《【C++ Template Meta-Programming】函式多載與 SFINAE 初步》: 從函式多載引出了 SFINAE, 介紹了 SFINAE 的具體定義和簡單的用法;
- 《【C++ Template Meta-Programming】SFINAE》: 介紹了 SFINAE 在哪一些情況下會發生, 並給出了兩個實例以展現 SFINAE 的具體用法;
- 《【C++ Template Meta-Programming】到處 SFINAE》: 介紹了 SFINAE 除了用於函式之外還可以用在哪些地方;
- 《【C++】實作
<type_traits>
(上)》: 介紹了 C++ 標準樣板程式庫標頭檔<type_traits>
的實作 (一部分). 其中包括了樣板超編程中的常數如何表達, 關於型別的一些變換, 關於型別的一些判斷和關於型別的一些計算, 同時還介紹了樣板超編程中才會用到的編碼器魔法; - 《【C++】實作
<type_traits>
(下)》: 介紹了 C++ 標準樣板程式庫標頭檔<type_traits>
的實作 (一部分). 其中包括了std::decay
,std::common_type
,std::common_reference
,std::result_of
,std::invoke_result
,std::is_invocable
,std::is_nothrow_invocable
,std::is_invocable_r
,std::is_nothrow_invocable_r
,class_template_traits
,std::conjunction
,std::disjunction
,std::negation
,std::aligned_storage
,std::aligned_union
,type_with_alignment
和一些 C++ 17 與 C++ 20 新引入的型別萃取的實作方法及其用法; - 《【C++】引數決議》: 介紹了如何借助樣板超編程來接管編碼器的函式引數匹配工作.
- C++ 程式設計語言等級考試系列 : 這個系列沒有設立單獨的文章列表;
- C++ 14 系列 : 這個系列沒有設立單獨的文章列表;
- 《【C++ 14】緩和對
constexpr
函式的約束》: 介紹了 C++ 14 如何放鬆了對constexpr
使用上的限制, 並介紹了在 C++ 14 中哪些特性仍然不允許被用於constexpr
函式中; - 《【C++ 14】使用單引號作為長數字的分隔》: 介紹了 C++ 14 引入的新特性, 使用單引號分隔數字, 增強數字的可讀性;
- 《【C++ 14】泛型 (動態) Lambda 表達式》: 講述了 C++ 14 引入的泛型 Lambda 表達式, 即允許將 Lambda 表達式參數列表中的參數型別設為使用
auto
進行佔位, 然後編碼器從引數來推導這個參數的型別. 另外, 文章還介紹了編碼器如何對泛型 Lambda 表達式的參數型別進行推導; - 《【C++ 14】變數樣板》: 介紹了 C++ 14 引入的變數樣板. 至此, C++ 中的變數, 函式和樣板都可以樣板化;
- 《【C++ 14】函式回傳型別推導》: 介紹了 C++ 14 引入的對函式回傳型別的推導, 使得函式可以直接省略掉尾置回傳型別;
- 《C++ 14 特性合集》: 介紹了 C++ 14 中引入的一些新的小特性, 包括聚合類別, 帶有大小的
operator delete
, 對帶有記憶體配置的程式碼的進一步優化, 型別轉換方面的變更和二進制字面值常數的寫法.
- 《【C++ 14】緩和對
- C++ 17 系列 : 這個系列沒有設立單獨的文章列表;
- 《【C++ 17】為類別樣板推導樣板參數》: 介紹了 C++ 17 引入的新特性, 宣告類別樣板對應物件的時候, 像函式樣板那樣無需給出樣板引數, 由編碼器自動推導. 另外, 文章中還介紹了編碼器如何對省略掉的類別樣板引數進行推導;
- 《【C++ 17】摺疊表達式》: 介紹了 C++ 17 引入的摺疊表達式, 讓和可變樣板參數相關的程式碼更好寫;
- 《【C++ 17】帶有初始化的條件陳述式》: 介紹了 C++ 17 中引入的新特性, 在
if
,switch
和if constexpr
條件判斷處宣告新的變數; - 《【C++ 17】初始化列表下的
auto
推斷》: 介紹了 C++ 17 中對auto
推導的更改; - 《C++ 17 特性合集 (一)》: 介紹了 C++ 17 引入的一些小特性, 包括擴展的
static_assert
, 三字符組的移除, 樣板參數中的樣板可以使用typename
宣告, UTF-8 字元和字串的前綴, 多重巢狀名稱空間的簡化寫法, 為名稱空間和列舉引入屬性, 放開部分非型別樣板引數轉型的限制, 移除register
關鍵字, 移除operator++(bool)
, 新的巨集__has_include
, 改進過的 Range-For, 為enum class
增加了建構規則, 十六進制浮點數字面值寫法和非標準屬性支援; - 《C++ 17 特性合集 (二)》: 介紹了 C++ 17 引入的一些小特性, 包括
noexcept
對函式型別的影響, 使用auto
推導非型別樣板引數, 帶有記憶體對位的記憶體配置函式, 支援從型別包中繼承, 重新對廣義左值和純右值進行定義和移除throw(type...)
; - 《【C++ 17】結構化繫結》: 介紹了 C++ 17 引入的結構化繫結及其注意事項;
- 《C++ 17 特性合集 (三)》: 介紹了 C++ 17 引入的一些小特性, 包括聚合初始化, 表達式計算順序的調整和
if constexpr
.
- C++ 20 系列 : 這個系列沒有設立單獨的文章列表;
- 《【C++ 20】Using Enum》: 介紹了 C++ 20 引入的
using enum
, 它類似於using namespace
可以提升強型別列舉的可視範圍; - 《【C++ 20】Module》: 介紹了 C++ 20 引入的模組 Module 及其全部特性;
- 《【C++ 20】Concept》: 介紹了 C++ 20 引入的 Concept 和 Constraint 及其全部特性;
- 《【C++ 20】三路比較運算子 (
operator<=>
)》: 介紹 C++ 20 引入的三路比較運算子operator<=>
及其全部特性, 並且實作了 C++ 20 新引入的標頭檔<compare>
; - 《C++ 20 特性合集 (一)》: 介紹了 C++ 20 引入的一些小特性, 包括位元欄位語法增強, 成員函式的呼叫錯誤的標準修復,
__VA_OPT__
, 指定初始化和帶有初始化的 Range-For; - 《C++ 20 特性合集 (二)》: 介紹了 C++ 20 引入的一些小特性, 包括名稱查找例外擴展到樣板, 放鬆複製建構子中的
const
匹配的一個限制, 樣板存取私用成員的合法化,typename
可省略情形的增加和支援樣板參數中放置類別; - 《C++ 20 特性合集 (三)》: 介紹了 C++ 20 引入的一些小特性, 包括破壞性
operator new
,__has_cpp_attribute
,explicit(bool)
, 對帶號數整型型別的調整和char8_t
.
- 《【C++ 20】Using Enum》: 介紹了 C++ 20 引入的
- 《【C++ 學習筆記】頂層
const
還是底層const
》: 詳細講述了const
標識的具體內容 (例如const int *const *const *p
中各個const
的作用). 其中, 頂層const
概念來自於 C++ 標準, 底層const
概念來自於書籍《C++ Primer》第五版; - 《【C++ 11】物件移動》: 介紹了 C++ 11 引入的物件移動中,
std::move
和std::forward
分別發揮的不同作用和相似的地方 (例如對於T t
,T &t
和T && t
,std::move(t)
與std::forward<T>(t)
的相似之處和不同之處), 同時證明了std::forward
也可以像std::move
那樣用於物件移動; - 《玩死 C++ 編碼器——無限迴圈的編碼》: 介紹了在 C++ 17 引入為類別樣板推導樣板參數之後, 出現了一種程式碼, 它可以讓編碼器在編碼階段陷入無限迴圈的狀態;
- 《C++ 中的例外安全》: 介紹了 C++ 中例外情況是如何導致資料流失的, 同時介紹了如何編寫帶有例外安全保證的程式碼;
- 《為什麼我寫不出速度和
std::vector
接近的vector
》: Jonny 仿照了std::vector
編寫了一個自己的vector
, 然而這個vector
在某些時候的效能和std::vector
有巨大的差距, 這篇文章分析了具體的原因. 除此之外, 這篇文章還介紹了一些比較極端的方法, 讓我們自己編寫的vector
可以比std::vector
更快; - 《記憶池》: 介紹了使用
new
和std::malloc
配置較小的記憶體區塊而導致的問題, 同時介紹了解決方案, 即記憶池. - 《【C++】記憶體對位》: 介紹了 C++ 中類別物件的記憶體對位, 以及如何調整類別物件的記憶體對味;
- 《【C++ 11】Attribute》: 介紹了 C++ 11 標準化之後的屬性及其用法;
- 《【C++】
auto
與decltype
》: 介紹了 C++ 中auto
與decltype
使用中要注意的情形, 並且介紹了 C++ 14 引入的decltype(auto)
; - 《【C++】再論列舉》: 介紹了強型別列舉和弱型別列舉各自的優點和具體應該使用的情形;
- 《【C++】Lambda 表達式合集》: 介紹了 C++ 14, C++ 17, C++ 20 和 C++ 2b (expected C++ 23) 中為 Lambda 表達式引入的新特性. 其中包括了泛型捕獲列表,
constexpr
Lambda 表達式, 對*this
的值捕獲, 遺棄了使用[=]
的方式捕獲*this
, Lambda 表達式的樣板參數, 無狀態 Lambda 表達式的建構和指派, 不可估量語境中 Lambda 表達式的更改, 引數包的補貨和省略空的參數列表; - 《【C++】移動, 通用參考和完美轉遞》: 介紹了 C++ 中使用移動, 參考和完美轉遞需要注意的地方;
- 《【C++】Lambda 表達式補充》: 介紹了 C++ 中使用 Lambda 表達式需要注意的地方, 以及對比了 Lambda 表達式和
std::bind
各自的優勢; - 《【C++】智慧指標》: 介紹了使用
std::shared_ptr
,std::unique_ptr
和std::weak_ptr
中需要注意的地方; - 《【C++】被刪除的函式 (補充)》: 補充《C++ 學習筆記》中沒有提到的
= delete
對函式多載的影響; - 《【C++】Emplacement》: 介紹了 C++ 標準樣板程式庫容器所提供的
emplace
系列函式的注意事項; - 《【C++】竊取私用成員》: 介紹了如何結合
friend
和template
來合法地竊取一個類別的私用成員, 並且不會產生編碼錯誤. - 《【C++】另一種
inline
》: 介紹了現代 C++ 中inline
的含義以及 C++ 17 中引入的inline
變數; - 《【C++】
constexpr
,consteval
和constinit
》: 對constexpr
重新進行完整介紹 (從 C++ 11 的引入到 C++ 14, C++ 17 和 C++ 20 中的改變), 並且對 C++ 20 引入的constavel
,constinit
和std::is_constant_evaluated
進行介紹. 除此之外, 還對 C++ 2b (expected C++23) 準備引入的if consteval
進行介紹; - 《【C++ 11】用戶自訂字面值與原始字串》: 介紹了 C++ 11 新引入的用戶自訂字面值和原始字串的用法;
- 《在 Windows 下配置 GCC 編碼器》: 介紹了如何在 Windows 作業系統下配置最新版本的 GCC 編碼器.
1.1.2 資料結構系列
資料結構系列文章列表 : https://jonny.vip/tag/資料結構/.
- 效能分析系列 : 這個系列沒有設立單獨的文章列表;
- 《【資料結構】向量 (順序表)》: 介紹了程式設計中最常用的線性結構向量的定義, 也就是動態陣列. 除此之外, 對向量的插入, 移除, 搜尋, 字典比較和旋轉操作進行了介紹. 其中, 旋轉操作給出了四種可能的演算法. 最後給出了向量的 C++ 實作參考;
- 《【資料結構】前向連結串列》: 對前向連結串列的定義, 插入, 移除, 搜尋, 字典比較和旋轉進行了介紹. 另外, 還給出和前向連結串列有關的演算法, 包括大小未知情況下一邊尋訪移除第 k 個節點, 合併 k 個有序的前向連結串列, k 個一組翻轉前向連結串列, 移除有序前向連結串列存在重複的元素, 以某個值為基礎分隔前向連結串列, 環狀前向連結串列的判斷, 分岔路口的判斷, 使用前向連結串列儲存數字後的計算, 分隔為 k 個前向連結串列, 前向連結串列專用的合併排序法. 最後給出了前向連結串列的 C++ 實作參考;
- 《【資料結構】連結串列》: 對連結串列的定義, 插入, 移除, 搜尋, 字典比較和旋轉進行了介紹, 最後給出了連結串列的 C++ 實作參考;
- 《【資料結構】雙向佇列 (雙端佇列)》: 對雙向佇列的定義, 空間佈局, 疊代器, 插入, 移除, 搜尋, 字典比較和旋轉進行了介紹, 並和向量進行了結構上的對比. 最後給出了雙向佇列的 C++ 實作參考;
- 《【資料結構】堆疊》: 對堆疊的定義, 插入和移除進行了介紹, 並介紹了和堆疊有關的遞迴替換方法, 括號匹配問題, 開關盒佈線問題和逆波蘭表示法. 同時, 還介紹了堆疊的擴展結構, 即雙向堆疊 (雙邊堆疊). 最後給出了堆疊的 C++ 實作參考;
- 《【資料結構】佇列》: 對佇列的定義, 插入和移除進行了介紹, 並介紹了佇列在像素分割問題上的應用. 同時還介紹了佇列的迴圈佇列 (循環佇列) 實作方法. 最後給出了佇列的 C++ 實作參考;
- 《【資料結構】陣列》: 對陣列的定義, 各種形式進行了介紹, 並對比了向量. 最後給出了陣列的 C++ 實作參考;
- 《【演算法】列車重排》: 使用堆疊或者佇列來解決列車重排問題 : 一列貨運列車有 n 節車廂, 第 i 節車廂停靠在第 i 個站點. 假設列車在裝載的時候, 不一定按照順序進行裝載 (例如裝載順序為 581742963, 3 為車頭). 在列車到達終點站之前需要經過一個緩衝站點, 緩衝站點中有 k 個緩衝軌道. 當列車駛出緩衝站點之後, 要求所有車廂有序裝載 (即對於 581742963, 要求最終的順序為 123456789 或者 987654321).
- 《【資料結構】跳躍列表》: 介紹了跳躍列表的定義, 級產生的方法, 插入和移除. 證明了跳躍列表是一種搜尋時間複雜度為機率 \Theta(\log {n}) 的前項連結串列結構. 最後給出了如何仿照 C++ 標準樣板程式庫容器, 用 C++ 實作一個跳躍列表, 並且給出了 C++ 的實作參考;
- 《【資料結構】雜湊表》: 介紹了雜湊函數的定義, 一些常用的雜湊函數, 雜湊表的定義, 雜湊表的插入刪除和搜尋操作和雜湊表的載荷因素. 最後給出了雜湊表的 C++ 實作參考;
- 《【資料結構】樹》: 介紹了樹的定義以及和樹有關的概念, 給出了樹的層次尋訪, 先序尋訪和後序尋訪方案. 最後給出了樹的 C++ 實作參考;
- 《【資料結構】樹——二元樹》: 介紹了樹結構中最重要的二元樹的定義, 性質, 儲存方式, 尋訪和旋轉. 最後給出了二元樹的 C++ 實作參考;
- 《【資料結構與演算法】堆積, 堆積排序和優先佇列》: 介紹了堆積的定義, 插入, 移除和初始化, 根據堆積的移除引入了堆積排序法. 同時, 還介紹了另外一種以堆積為基礎的資料結構, 優先佇列. 最後給出了堆積和優先佇列的 C++ 實作參考;
- 《【資料結構】樹——左偏樹》: 介紹左偏樹的定義, 性質, 合併, 插入, 移除和初始化. 最後給出了左偏樹的 C++ 實作參考;
- 《【資料結構】樹——贏者樹》: 介紹了贏者樹的定義, 贏者的選定, 選手的更換, 插入, 移除, 儲存方式. 同時還介紹了輸者樹和記憶體不足情況下如何借助贏者樹進行排序. 最後給出了贏者樹的 C++ 實作參考;
- 《【資料結構】樹——二元搜尋樹》: 介紹了二元搜尋樹的定義, 性質, 搜尋, 插入和移除. 同時還給出和前向連結串列有關的演算法, 包括生成不同的二元搜尋樹, 任意兩個交換節點後的二元搜尋樹的復原, 生成高度平衡的二元搜尋樹, 根據二元搜尋樹的性質來尋找兩個節點最近公共祖先, 根據尋訪結果判斷二元搜尋樹, 根據二元搜尋樹的性質來尋找最接近某個值的 k 個節點, 根據二元搜尋樹的性質來尋找節點最多的子樹, 根據二元搜尋樹的性質來尋找出現頻率最高的元素. 最後給出了二元搜尋樹的 C++ 實作參考;
- 《【資料結構】樹——AVL 樹》: 介紹了 AVL 樹的定義, 性質, 插入和移除操作, 最後給出了 AVL 樹的 C++ 實作參考;
- 《【資料結構】樹——伸展樹》: 介紹了伸展樹的定義, 伸展, 搜尋, 插入和移除操作, 最後給出了伸展樹的 C++ 實作參考;
- 《【資料結構】樹——紅-黑樹 (紅黑樹)》: 介紹了 AVL 樹的定義, 性質, 搜尋, 插入和移除操作, 並在紅黑樹和 AVL 樹之間作了比較. 最後給出了紅黑樹的 C++ 實作參考;
- 《【資料結構】圖》: 介紹了圖的定義, 並且介紹了圖中的一些著名演算法, 包括廣度優先搜尋, 深度優先搜尋, 頂點存在性判定, 路徑存在性判定, 連同性判定, 迴路判定, 生成樹的產生, 二部圖的判定, 拓撲排序, 二部圖的最小覆蓋, 最小生成樹演算法 (Kruskal 演算法, Prim 演算法和 Borůvka 演算法), 最短路徑演算法 (Dijkstra 演算法, Bellman-Ford 演算法和 Floyd-Warshall 演算法), 尋找有向圖中強連通子圖的 Kosaraju 演算法.
1.1.3 計算理論系列
計算理論系列文章列表 : https://jonny.vip/category/computer-science/theory-of-computation/.
- 《【計算理論】導引》: 介紹了計算理論中的自動機理論, 可計算理論和計算複雜性理論.
1.1.3.1 演算法系列
演算法系列文章列表 : https://jonny.vip/category/computer-science/theory-of-computation/algorithm/.
- 演算法藝術系列 : 這個系列沒有設立單獨的文章列表;
- 遞迴方程式系列 : 這個系列沒有設立單獨的文章列表;
- 《【遞迴方程式】替代法與歸納法》: 介紹了如何使用替代法, 歸納法和查表法解遞迴方程式;
- 《【遞迴方程式】特徵根法》: 介紹了如何使用特徵根法解遞迴方程式.
- 分析系列 : 這個系列沒有設立單獨的文章列表;
- 排序系列 : 這個系列沒有設立單獨的文章列表;
- 《【演算法】名次排序法 (Ranking Sort)》: 時間複雜度為 \Theta(n^{2}), 空間複雜度為 \Theta(n);
- 《【演算法】選擇排序法 (Selection Sort)》: 時間複雜度為 \Theta(n^{2}), 空間複雜度為 \Theta(1);
- 《【演算法】氣泡排序法 (Bubble Sort)》: 時間複雜度為 \Theta(n^{2}), 空間複雜度為 \Theta(1);
- 《【演算法】插入排序法 (Insertion Sort)》: 時間複雜度為 \Theta(n^{2}), 空間複雜度為 \Theta(1);
- 《【演算法】桶排序法 (Bucket Sort)》: 時間複雜度為 \Theta(n), 空間複雜度為 \Theta(r). 其中, r 是元素範圍大小;
- 《【演算法】基數排序法 (Radix Sort)》: 時間複雜度為 \Theta(n), 空間複雜度為 \Theta(r). 其中, r 是基數;
- 《【演算法】合併排序法 (Merge Sort)》: 時間複雜度在 [\Theta(n\log {n}), \Theta(n\log^{2} {n})] 之內, 空間複雜度在 [\Theta(\log{n}), \Theta(n)] 之內;
- 《【演算法】快速排序法 (Quick Sort)》: 被採用最多且平均情況下最快的排序演算法, 時間複雜度在 [\Theta(n\log {n}), \Theta(n^{2})] 之內, 空間複雜度為 \Theta(\log{n});
- 《【資料結構與演算法】堆積, 堆積排序和優先佇列》: 堆積排序法部分, 時間複雜度為 \Theta(n\log {n}), 空間複雜度為 \Theta(1), 是線性對數級別複雜度中空間利用率最高的排序演算法.
- 《【演算法】河內塔》: 給出了解決河內塔問題的方案和複雜度分析;
- 《【演算法】凸包》: 給出了凸包問題的幾種解決方案和複雜度分析;
- 《【演算法】全排列》: 給出了全排列問題的幾種解決方案和複雜度分析;
- 《【演算法】迷宮老鼠》: 使用堆疊尋找迷宮問題的解, 使用佇列尋找迷宮問題的最短路徑解.
1.1.4 人工智慧系列
人工智慧系列文章列表 : https://jonny.vip/category/computer-science/artificial-intelligence/.
- 《機器學習筆記》: 介紹了機器學習中監督學習, Bayes 決策理論, 參數方法, 多變數方法, 維度化約, 聚類分析, 非參數方法, 決策樹, 線性判別式, 多層感知器, 局部模型, 核機器, 貝氏網絡, 馬可夫模型, 貝葉斯推斷, 組合多學習器和強化學習. 文章中對所有方法都給出了數學推導.
1.2 數學系列
數學系列文章列表 : https://jonny.vip/category/mathematics/.
1.2.1 機率論系列
機率論系列文章列表 : https://jonny.vip/category/mathematics/probability/.
- 《【機率論】初等機率論——有限種結局試驗的機率模型》: 介紹了機率論中基本事件空間, 隨機抽樣, 事件的關係與運算, 事件代數, 機率空間和古典的機率的基本概念;
- 《【機率論】初等機率論——某些經典模型和分佈》: 引入了二項分布, 多項分布和多元超幾何分佈;
- 《【機率論】初等機率論——條件機率與獨立性》: 引入了條件機率和獨立性, 介紹了直積的定義;
- 《【機率論】初等機率論——隨機變數及其特徵》: 引入了隨機變數和分佈函數, 介紹了數學期望, 方差, 標準差, 協方差和相關係數的定義及其性質. 除此之外, 還引入了估計量的概念;
- 《【機率論】初等機率論——Bernoulli 概型 : 大數法則》: 導出了大數法則並且從機率的角度證明了其成立, 給出了大數法則的意義, 通過大數法則對最小觀測次數進行了估計, 引入了熵的概念;
- 《【機率論】初等機率論——Bernoulli 概型 : 極限定理》: 導出了 De Moivre-Laplace 極限定理和 Poisson 定理並進行了證明, 引入了 Poisson 分佈和常態分佈, 敘述了極限定理和大數法則之間的關係, 使用了極限定理對最小觀測次數進行了估計 (同時比較了通過大數法則得到的估計);
- 《【機率論】初等機率論——Bernoulli 概型中 “成功” 機率的估計》: 介紹了如何通過試驗結果對成功機率進行估計, 引入了信賴區間的概念.
1.2.2 分析系列
分析系列文章列表 : https://jonny.vip/category/mathematics/analysis/.
- 《【數學分析】數學分析基礎》: 介紹了學習數學分析必須具備的中學數學知識, 最後對集合論的基礎知識作了補充;
- 《【數學分析】實數——實數集合及其有序化》: 建立嚴格的實數體系, 為接下來的內容做準備;
- 《【數學分析】實數——實數的四則運算》: 完善實數體系, 引入了嚴格的實數四則運算;
- 《【數學分析】實數——實數的其它性質及線段的測量》: 完善實數體系, 引入實數的性質, 並拓展到了線段的測量;
- 《【數學分析】單變數函數——函數概念》: 建立變數, 函數和數列的概念, 引入函數的性質;
- 《【數學分析】單變數函數——幾類重要的函數》: 引入分析學中幾類非常重要的函數.
1.2.3 代數系列
代數系列文章列表 : https://jonny.vip/category/mathematics/algebra/.
- 《【代數學】代數的起源——簡談代數及其兩個經典問題》: 介紹了代數的起源和代數學中兩個經典問題, 方程式的根式解問題和通信編碼問題.
1.3 Skill 系列
該系列主要介紹一些和伺服器維護有關的技巧. Skill 系列文章列表 : https://jonny.vip/category/skill/.
- 《在 CentOS 7 上搭建 Nginx + PHP 7 + MySQL 5.7》;
- 《在 CentOS 8 下配置 Nginx + PHP 7 + MySQL 8 + phpMyAdmin + vsFTPd》;
- 《在 CentOS 8 下配置 Nginx + PHP 8 + MySQL 8 + phpMyAdmin + vsFTPd》;
- 《在 CentOS 8 + Nginx + MySQL 8 下配置 Seafile 專業版》;
- 《在帶有 NVIDIA 顯示卡的 CentOS 8 上配置深度學習環境》: 配置的深度學習環境為 TensorFlow 和 Keras;
- 《在 CentOS 8 + PHP 8 + MySQL 8 下配置 Nextcloud》;
- 《在 CentOS 8 和 MySQL 8 下配置 Etherpad》;
- 《私有雲軟體的介紹與比較》: 羅列了市面上絕大多數私有雲軟體及其特點, 詳細比較了 Nextcloud 和 Seafile 這兩個私有雲軟體.
1.4 Archive 系列
該系列所有文章都是過時的歸檔文章, 不再享受更新, 文章中可能存在過時甚至錯誤的內容. 這些文章不會在主頁中顯示, 只能被搜尋.
- 《Swift 第一课 : 常量与变量》;
- 《Swift 第二课 : 数据类型与运算》;
- 《在 CentOS 7 上搭建 phpMyAdmin》;
- 《在 CentOS 7 上使用 vsFTPd 软件搭建 FTP 服务器》;
- 《Nginx 实现 HTTP 用户认证》;
- 《Nginx 下实现 HTTPS》;
- 《CentOS 7 和 Nginx 下实现多版本 PHP 的共存》;
- 《在 CentOS 7 上设置虚拟内存》;
- 《Seafile OwnCloud NextCloud 私有云软件比较》;
- 《Swift 第三课 : 循环和条件判断》;
- 《在 CentOS 7 下安装 Seafile 社区版》;
- 《PHP 5 下安装 Zend Guard Loader》;
- 《在 CentOS 7 和 MySQL 5.7 下安装 PHP 5.3 一些问题的方案》;
- 《Swift 第四课 : 数组和字典》;
- 《CentOS 7 与 MySQL 5.7 下搭建 Seafile 企业版》;
- 《CentOS 7 + PHP 7 + MySQL 5.7 下搭建 NextCloud》;
- 《Swift 第五课 : 函数》;
- 《CentOS 下网站发送邮件的问题》;
- 《Swift 第六课 : 枚举》;
- 《NextCloud 下管理者页面的错误及警告提示的解决方案》;
- 《Seafile 进阶玩法》;
- 《Swift 第七课 : 结构体》;
- 《PHP 第一课 : 基本语法与规范》;
- 《Swift 第八课 : 类》;
- 《Apple Watch Series 3 with LTE 使用情况》;
- 《PHP 第二课 : 运算符》;
- 《Swift 第九课 : 扩展》;
- 《Swift 第十课 : 协议》;
- 《Swift 补习课 : 问号 ? 和感叹号 !》;
- 《PHP 第三课 : 条件判断》;
- 《PHP 第四课 : 循环控制》;
- 《PHP 第五课 : 函数》;
- 《PHP 第六课 : 字符串》;
- 《搭建属于自己的 Cydia 个人源》;
- 《PHP 第七课 : 数组》;
- 《PHP 第八课 : 类》;
- 《PHP 第九课 : 时间与日期》;
- 《PHP 第十课 : 错误处理》;
- 《NextCloud 进阶玩法》;
- 《在 CentOS 下安装配置 Go 开发环境》;
- 《PHP 進階 : 命名空間》;
- 《PHP 進階 : 介面》;
- 《在 CentOS 7 下為 vsFTPd 增加 SSL 連線加密》;
- 《對於 MySQL 8 的一些相容性提示》;
- 《C++ 2a 特性導讀 – Contract》;
- 《新版本下的 Seafile》;
- 《C++ 2a 特性導讀 – Concept》;
- 《【致歉】由於給出錯誤的 Nginx 配置, 導致閣下網站無法被搜尋引擎檢索》
- 《【資料結構】堆疊的應用 : 括號匹配和開關盒佈線》;
- 《貪婪演算法與 NP 問題 (上) – 任務排程和箱櫃裝載》;
- 《【C++】細談
constexpr
》; - 《貪婪演算法與 NP 問題 (下) – 0/1 背包問題》;
- 《【資料結構】佇列的應用 : 像素分割》;
- 《【資料結構】跳躍列表 (實作篇)》;
- 《距離最近的點》;
1.5 特殊頁面
特殊頁面沒有專用的頁面列表.
- 熱門文章排行 (https://jonny.vip/like-page/) : 該頁面根據文章 Like 的數量從高到低進行排序;
- Jonny'GitHub (https://github.com/Jonny0201) : 該頁面展現了 Jonny 實作的一些程式碼;
- 年度歸檔 (https://jonny.vip/archives-page/) : 以從現在到過去的時間排序展現了 Jonny'Blog 中的文章;
- 熱門標籤 (https://jonny.vip/tags-page/) : 根據標籤使用數量對 Jonny'Blog 中的標籤進行排序;
- 投稿 (暫未開放) : https://jonny.vip/contribute-page/;
- 友站連結 : https://jonny.vip/links-page/.
2. 無介紹
2.1 電腦科學系列
電腦科學系列文章列表 : https://jonny.vip/category/computer-science/.
2.1.1 程式設計語言系列
程式設計語言系列文章列表 : https://jonny.vip/category/computer-science/programming-language/. 目前, 程式設計語言系列文章除了 C++ 之外, 還沒有引入其它程式設計語言的文章.
2.1.1.1 C++ 系列
C++ 系列文章列表 : https://jonny.vip/category/computer-science/programming-language/cplusplus/. 這個系列所有的文章預設都是以 C++ 11 為基礎, 涉及 C++ 98/03 之處會額外提及.
- 讀書筆記系列 : 這個系列沒有設立單獨的文章列表;
- Template Meta-Programming (樣板超編程) 系列 : 這個系列沒有設立單獨的文章列表;
- 《【C++ Template Meta-Programming】認識樣板超編程 (TMP)》;
- 《【C++ Template Meta-Programming】參數列表》;
- 《【C++ Template Meta-Programming】Traits 技巧》;
- 《【C++ Template Meta-Programming】函式多載與 SFINAE 初步》;
- 《【C++ Template Meta-Programming】SFINAE》;
- 《【C++ Template Meta-Programming】到處 SFINAE》;
- 《【C++】實作
<type_traits>
(上)》; - 《【C++】實作
<type_traits>
(下)》; - 《【C++】引數決議》.
- C++ 程式設計語言等級考試系列 : 這個系列沒有設立單獨的文章列表;
- C++ 14 系列 : 這個系列沒有設立單獨的文章列表;
- C++ 17 系列 : 這個系列沒有設立單獨的文章列表;
- C++ 20 系列 : 這個系列沒有設立單獨的文章列表;
- 《【C++ 學習筆記】頂層
const
還是底層const
》; - 《【C++ 11】物件移動》;
- 《玩死 C++ 編碼器——無限迴圈的編碼》;
- 《C++ 中的例外安全》;
- 《為什麼我寫不出速度和
std::vector
接近的vector
》; - 《記憶池》.
- 《【C++】記憶體對位》;
- 《【C++ 11】Attribute》;
- 《【C++】
auto
與decltype
》; - 《【C++】再論列舉》;
- 《【C++】Lambda 表達式合集》;
- 《【C++】移動, 通用參考和完美轉遞》;
- 《【C++】Lambda 表達式補充》;
- 《【C++】智慧指標》;
- 《【C++】被刪除的函式 (補充)》;
- 《【C++】Emplacement》;
- 《【C++】竊取私用成員》.
- 《【C++】另一種
inline
》; - 《【C++】
constexpr
,consteval
和constinit
》; - 《【C++ 11】用戶自訂字面值與原始字串》;
- 《在 Windows 下配置 GCC 編碼器》.
2.1.2 資料結構系列
資料結構系列文章列表 : https://jonny.vip/tag/資料結構/.
- 效能分析系列 : 這個系列沒有設立單獨的文章列表;
- 《【資料結構】向量 (順序表)》;
- 《【資料結構】前向連結串列》;
- 《【資料結構】連結串列》;
- 《【資料結構】堆疊》;
- 《【資料結構】佇列》;
- 《【資料結構】陣列》;
- 《【演算法】列車重排》.
- 《【資料結構】跳躍列表》;
- 《【資料結構】雜湊表》;
- 《【資料結構】樹》;
- 《【資料結構】樹——二元樹》;
- 《【資料結構與演算法】堆積, 堆積排序和優先佇列》;
- 《【資料結構】樹——左偏樹》;
- 《【資料結構】樹——贏者樹》;
- 《【資料結構】樹——二元搜尋樹》;
- 《【資料結構】樹——AVL 樹》;
- 《【資料結構】樹——伸展樹》;
- 《【資料結構】樹——紅-黑樹 (紅黑樹)》;
- 《【資料結構】圖》.
2.1.3 計算理論系列
計算理論系列文章列表 : https://jonny.vip/category/computer-science/theory-of-computation/.
2.1.3.1 演算法系列
演算法系列文章列表 : https://jonny.vip/category/computer-science/theory-of-computation/algorithm/.
- 演算法藝術系列 : 這個系列沒有設立單獨的文章列表;
- 遞迴方程式系列 : 這個系列沒有設立單獨的文章列表;
- 分析系列 : 這個系列沒有設立單獨的文章列表;
- 排序系列 : 這個系列沒有設立單獨的文章列表;
- 《【演算法】河內塔》;
- 《【演算法】凸包》;
- 《【演算法】全排列》;
- 《【演算法】迷宮老鼠》.
2.1.4 人工智慧系列
人工智慧系列文章列表 : https://jonny.vip/category/computer-science/artificial-intelligence/.
2.2 數學系列
數學系列文章列表 : https://jonny.vip/category/mathematics/.
2.2.1 機率論系列
機率論系列文章列表 : https://jonny.vip/category/mathematics/probability/.
- 《【機率論】初等機率論——有限種結局試驗的機率模型》;
- 《【機率論】初等機率論——某些經典模型和分佈》;
- 《【機率論】初等機率論——條件機率與獨立性》;
- 《【機率論】初等機率論——隨機變數及其特徵》;
- 《【機率論】初等機率論——Bernoulli 概型 : 大數法則》;
- 《【機率論】初等機率論——Bernoulli 概型 : 極限定理》;
- 《【機率論】初等機率論——Bernoulli 概型中 “成功” 機率的估計》.
2.2.2 分析系列
分析系列文章列表 : https://jonny.vip/category/mathematics/analysis/.
- 《【數學分析】數學分析基礎》;
- 《【數學分析】實數——實數集合及其有序化》;
- 《【數學分析】實數——實數的四則運算》;
- 《【數學分析】實數——實數的其它性質及線段的測量》;
- 《【數學分析】單變數函數——函數概念》;
- 《【數學分析】單變數函數——幾類重要的函數》.
1.2.3 代數系列
代數系列文章列表 : https://jonny.vip/category/mathematics/algebra/.
2.3 Skill 系列
該系列主要介紹一些和伺服器維護有關的技巧. Skill 系列文章列表 : https://jonny.vip/category/skill/.
- 《在 CentOS 7 上搭建 Nginx + PHP 7 + MySQL 5.7》;
- 《在 CentOS 8 下配置 Nginx + PHP 7 + MySQL 8 + phpMyAdmin + vsFTPd》;
- 《在 CentOS 8 下配置 Nginx + PHP 8 + MySQL 8 + phpMyAdmin + vsFTPd》;
- 《在 CentOS 8 + Nginx + MySQL 8 下配置 Seafile 專業版》;
- 《在帶有 NVIDIA 顯示卡的 CentOS 8 上配置深度學習環境》;
- 《在 CentOS 8 + PHP 8 + MySQL 8 下配置 Nextcloud》;
- 《在 CentOS 8 和 MySQL 8 下配置 Etherpad》;
- 《私有雲軟體的介紹與比較》.
自創文章, 原著 : Jonny. 如若閣下需要轉發, 在已經授權的情況下請註明本文出處 :