原创 Python_算法實現_(10)Karatsuba乘法

1. Karatsuba乘法 Karatsuba 乘法是一種快速乘法。此算法在1960年由 Anatolii Alexeevitch Karatsuba 提出,並於1962年得以發表。此算法主要用於兩個大數相乘。普通乘法的複雜度是

原创 Python_算法實現_(6)Dijkstra算法實現

1 算法簡介 戴克斯特拉算法(英語:Dijkstra’s algorithm,又譯迪傑斯特拉算法)由荷蘭計算機科學家艾茲赫爾·戴克斯特拉在1956年提出。戴克斯特拉算法使用了廣度優先搜索解決賦權有向圖的單源最短路徑問題。該算法存在

原创 Python_文本分析入門_SnowNLP(1)

SnowNLP是一個python寫的類庫,可以方便的處理中文文本內容,是受到了TextBlob的啓發而寫的,由於現在大部分的自然語言處理庫基本都是針對英文的,於是寫了一個方便處理中文的類庫,並且和TextBlob不同的是,這裏沒有

原创 Python_算法實現_(8)埃拉托色尼篩選法

1. 概念 埃拉托色尼篩選法(the Sieve of Eratosthenes)簡稱埃氏篩法,是古希臘數學家埃拉托色尼(Eratosthenes 274B.C.~194B.C.)提出的一種篩選法。 是針對自然數列中的自然數而實施

原创 Python_爬蟲_爬取好大夫網站_數據清洗部分

1.前言 通過對好大夫網站內容的爬取,我們已經收集到好大夫的相關數據,並將其存入excel表中。之所以先存入excel表中,是因爲有很多是非結構化數據,需要進行數據清理後在進行保存,excel中有很多的功能能夠幫助進行數據清理,下

原创 Python_練習實例_(1)計算天數

題目:輸入某年某月某日,判斷這一天是這一年的第幾天? year = int(input("Enter year:")) month = int(input("Enter month:")) day = int(input("Ent

原创 Python_算法實現_(4)條件互換

互換函數(SWAP)是將兩個數字進行互換,確保較小的數字在前,較大的數字在後,一般寫法如下: def swap(a, b): if a > b: return b, a else:

原创 Python_itertools模塊

1. itertools模塊的介紹 在Python中,迭代器(Iterator)是常用來做惰性序列的對象,只有當迭代到某個值的時候,纔會進行計算得出這個值。因此,迭代器可以用來存儲無限大的序列,這樣我們就不用把他一次性放在內存中,

原创 Python_算法實現_(1)遞歸漢諾塔

1.遞歸 遞歸(英語:Recursion),又譯爲遞迴,在數學與計算機科學中,是指在函數的定義中使用函數自身的方法。遞歸一詞還較常用於描述以自相似方法重複事物的過程。例如,當兩面鏡子相互之間近似平行時,鏡中嵌套的圖像是以無限遞歸的

原创 Python_練習案例_(4)進制轉換

題目:輸入兩次數字,第一次輸入需要轉換的數字,第二次輸入需要轉換的進制 分析:這道題目一下步驟實現 Input:接收輸入的兩個數字 Process1:確定需要的數字範圍,如12進制需要數字+A+B Process2:進行除法循環

原创 Python_練習案例_(5)校門外的樹

描述 某校門外長度爲L的馬路上有一排樹,每兩棵相鄰的樹之間的江而都是1m。可以把馬路看成一個數軸,馬路的一端在數軸0的位置,另一端在L的位置;數軸上的每個整數點,即0,1,2,…,L都種有一棵樹。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪

原创 Python_練習實例_(2)範圍內素數

用戶輸入範圍下限和範圍上限,每隔0.5s輸出一個該範圍內的素數 import time min = int(input("輸入範圍下限:")) max = int(input("輸入範圍上限:")) for num in ran

原创 Python_算法實現_(7)貪婪算法

1.NP完全問題 NP完全問題(Non-deterministic Polynomial complete problem)是沒有快速算法的問題,其時間複雜度爲O(n!)。通常沒有完全判定問題是不是NP完全問題,但有一些經驗能夠幫

原创 Python_算法實現_(2)二分查找

二分查找也被稱爲折半查找,是在一個有序數組中查找特定元素位置的查找算法。二分查找要求查找序列採用順序存儲,且按關鍵字有序排列。 二分查找是最爲常見的一種算法(後面回介紹其他的幾種查找和排序算法),實現一個完美的二分查找是有一定的難

原创 Python_算法實現_(9)遞歸麥肯錫91函數

1. 什麼是McCarthy 91 McCarthy 91 是一個遞歸的函數表達式如下: 函數的意思是當輸入一個大於 100 的數字 n 時返回 n-10,當 n<10 的時候遞歸的對 n 進行運算,但是結果總是 91。 2.