原创 【算法學習筆記十四】近似算法

有許多困難的組合優化問題,使用回溯或隨機化不能有效地解決。 組合優化問題:在有限的可能性中找出最優解。一個近似算法將給出一個合理的解,逼近一個最優解。(大多數)近似算法的標記特徵是它們是快速的(多項式時間算法)。然而,人們不應該樂觀地尋找

原创 【算法學習筆記十一】計算複雜性

計算複雜性是指根據解決問題所需的時間、空間或任何其他資源(如處理器數量和通信成本)對問題進行分類。  一.圖靈機 字母是一組有限的符號。語言L是從中選擇的所有有限長度的符號字符串集合的子集,用*表示。 標準的圖靈機只有一個工作帶,它被

原创 【算法學習筆記十二】回溯法(一)

回溯是一種有組織的詳盡搜索,它通常避免搜索所有的可能性。它通常適用於需要檢查大量但有限數量的解決方案的問題。  3着色問題 3着色問題:給出一個無向圖G=(V,E),需要用三種顏色之一爲V中的每個頂點着色,三種顏色分別爲1,2和3,使

原创 【算法學習筆記十二】回溯法(二)

回溯法(一) 應用分支限界法的關鍵問題 如何確定合適的限界函數         常見方法是先對整個問題估計出下界(最小化問題)或上界(最大化問題),而限界函數是在部分解的基礎上對剩餘的未知部分進行界的重新估計 如何組織待處理結點表 如何確

原创 【算法學習筆記十三】隨機算法

按照字典中使用的定義,當事件不可預測地發生時,它被認爲是隨機的。 對象在沒有任何計劃的情況下被創建時稱爲隨機。 根本的問題是,隨機性是否真的存在,或者我們是否只使用這個術語來建模具有未知規律性的對象和事件。  測試串的相等性 我們要

原创 【圖論學習筆記四】啓發式算法

在啓發式算法的上下文中,啓發式將是執行小的修改的一種方法,或一系列的修改,對給定解或部分解的修正,爲了得到不同的解或部分解決方案。實際的修改這些工作將涉及到鄰居搜索。按照一定的設計策略,一個啓發式算法將包括迭代地應用一個或多個啓發式。

原创 【圖論學習筆記五】貪心算法

優化問題的算法通常會通過一系列的步驟,在每一個步驟通過一系列的選擇。一個貪婪算法總是目前看起來最好的選擇。也就是說,它做出局部最優選擇,希望選擇將導致全局最優的解決方案。貪心算法並不總是能得到最優解,但對於許多問題它們都能得到最優解。

原创 【圖論學習筆記六】極值圖論

曼特爾定理(Mantel's Theorem) 在一個2n個頂點的圖G中沒有三角形圈,最多有多少條邊? 當然G可以有條邊不包含一個三角形:令G爲二部完全圖,由兩個部分n個頂點的集合組成,所有邊在兩個集合之間的。實際上,是可能的最大邊數:如

原创 【Python入門基礎】楊輝三角

楊輝三角 輸出多行的楊輝三角 - 二項式的n次方展開係數 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 ... ... ... def main(): num = int(input('Number of rows

原创 【算法學習筆記八】動態規劃

動態規劃被廣泛求解組合最優化問題,使用這種算法,不是遞歸調用自身,但是問題的基礎解通常使用遞歸函數的形式來說明。採取自底向上的方式遞推求值,並把中間結果存儲起來以便以後用來計算所需要求的解(即每個小問題不獨立)。 當子問題共享子問題時,

原创 【算法學習筆記六】遞歸之歸納法

基於遞歸的技術對於許多問題,使用遞歸使得使用簡潔、易於理解和高效的算法來解決複雜問題成爲可能(從算法的角度來看)遞歸最簡單的形式是將問題分解成一個或多個子問題,這些子問題在結構上與原問題相同,然後將這些子問題的解組合起來,得到原問題的解

原创 【算法學習筆記二】查找搜索算法

一.順序搜索(Linear search) 對於一個n元數組,查找某一元素是否等於x,則需要將數組從頭到尾與x做判斷,運氣好的話,可能比較第一次就找到,運氣壞的話可能最後一個元素才找到或者都沒找不到,即元素比較次數是1~n之間。 輸入:

原创 【Python入門基礎】@property裝飾器及__slot__

@property裝飾器 在前面《面向對象的三大特性》中說過了Python中屬性和方法訪問權限的問題,雖然不建議將屬性設置爲私有的,但是如果直接將屬性暴露給外界也是有問題的。這裏通過屬性的getter(訪問器)和setter(修改器)方法

原创 【Python入門基礎】字符串與常用運算符及處理

字符串       字符串時零個或多個字符組成的有限序列,在Python程序中,如果我們把單個或多個字符用單引號或雙引號包圍起來,就可以表示一個字符串。 eg.字符串表示 s1 = 'hello, world!' s2 = "hello

原创 Python exe運行隱藏不顯示命令行窗口以及報錯AttributeError: module 'win32ctypes.pywin32.win32api' has no attribute

Python打包exe文件後,執行exe文件總會打開命令行窗口,通過查找相關解決的方法,經過親測,介紹幾種可行的方案。 修改文件名後綴 將.py文件改成.pyw文件(使用的是腳本解析程序pythonw.exe) 修改打包命令 p