更改演算法
WordPress系統的用戶密碼是保存在wp_users數據表的user_pass欄位,密碼是通過Portable php password hashing framework類產生的,密碼的形式是隨機且不可逆,同一個明文的密碼在不同時間,產生的密文也不一樣,相對來說較為安全。
WordPress用戶密碼產生的過程是,當需要生成用戶密碼的時候,隨機產生了一個salt,然後將salt和password相加,又進行了count次md5,最後和encode64的hash數值累加,就得到了一個以$P$開頭的密碼,這個密碼每次產生的結果都不一樣,下面就是產生WordPress密碼的代碼,將其放在WordPress根目錄下,就可以生成一個加密的password,用這個密碼替換掉wp_users數據表的user_pass欄位即可修改密碼。
<?php
$password = 'abc';
global $wp_hasher;
if ( empty($wp_hasher) ) {
require_once( './wp-includes/class-phpass.php');
$wp_hasher = new PasswordHash(8, TRUE);
}
echo $wp_hasher->HashPassword($password);
?>
不過,修改WordPress用戶密碼還有更簡單的方法,就是直接將wp_users數據表的user_pass欄位修改為32位的md5(passowrd)即可修改密碼為password,這樣的密碼形式當然不是很安全,所以,當這個用戶在WordPress登錄後,系統會自動將MD5密碼修改為以$P$開頭的密碼。
WordPress的這種支持簡單md5格式的密碼使得其他系統(例如Ucenter系統)的用戶整合WordPress更為簡單。
希望可以幫到你!
2. 如何修改基本決策樹演算法,以便考慮每個廣義數據元組
a) 如何修改基本決策樹演算法,以便考慮每個廣義數據元組(即每一行) 如何修改基本決策樹演算法,以便考慮每個廣義數據元組( 即每一行) 的 count? ? b) 使用修改過的演算法,構造給定數據的決策樹。 使用修改過的演算法,構造給定數據的決策樹。 c) 給定一個數據元組,它的屬性 department,age 和 salary 的值分別 給定一個數據元組, , 為「systems」「26…30」 和「46K…50K」 該元組 status 的樸素貝 」 6 , 」 , K 」 。 葉斯分類是什麼? 葉斯分類是什麼? 1. 為給定的數據設計一個多層前饋神經網路。標記輸入和輸出層節 點。 2. 使用上面得到的多層前饋神經網路, 給定訓練實例 (sales, senior, 31…35,46K…50K) ,給出後向傳播演算法一次迭代後的權重值。指出 你使用的初始權重和偏倚以及學習率。 解答: 解答: (a) 如何修改基本決策樹演算法,以便考慮每個廣義數據元組(即每一行)的 count? (b) 使用修改過的演算法,構造給定數據的決策樹。 (c) 給定一個數據元組,它的屬性 department,age 和 salary 的值分別為 「systems」「26…30」 , ,和「46K…50K」 。該元組 status 的樸素貝葉斯分 類是什麼? 解一: 解一:設元組的各個屬性之間相互獨立,所以先求每個屬性的類條件概率: P(systems|junior)=(20+3)/(40+40+20+3+4+6)=23/113; P(26-30|junior)=(40+3+6)/113=49/113; P(46K-50K|junior)=(20+3)/113=23/113; ∵ X=(department=system,age=26…30,salary=46K…50K); ∴ P(X|junior)=P(systems|junior)P(26-30|junior)P(46K-50K|junior) =23×49×23/1133=25921/1442897=0.01796; P(systems|senior)=(5+3)/(30+5+3+10+4)=23/52; P(26-30|senior)=(0)/53=0; P(46K-50K|senior)=(30+10)/52=40/52; ∵ X=(department=system,age=26…30,salary=46K…50K); ∴ P(X|senior)=P(systems|senior)P(26-30|senior)P(46K-50K|senior)=0; ∵ P(junior)=113/165=0.68; ∵ P(senior)=52/165=0.32; ∴ P(X|junior)P(junior)=0.01796×0.68=0.0122128>0=0=P(X|senior)P(senior); 所以:樸素貝葉斯分類器將 X 分到 junior 類。 解二: 解二:設元組的各屬性之間不獨立,其聯合概率不能寫成份量相乘的形式。 所以已知:X=(department=system,age=26…30,salary=46K…50K),元組總數 為:30+40+40+20+5+3+3+10+4+4+6=165。 先驗概率: 當 status=senior 時,元組總數為:30+5+3+10+4=52,P(senior)=52/165=0.32; 當 status=junior 時 , 元 組 總 數 為 : 40+40+20+3+4+6=113 , P(junior)=113/165=0.68; 因為 status=senior 狀態沒有對應的 age=26…30 區間,所以:P(X|senior)=0; 因為 status=junior 狀態對應的 partment=systems、age=26…30 區間的總元組 數為:3,所以:P(X|junior)=3/113; 因為:P(X|junior)P(junior)=3/113×113/165=0.018>0=P(X|senior)P(senior); 所以:樸素貝葉斯分類器將 X 分到 junior 類。 (d) 為給定的數據設計一個多層前饋神經網路。標記輸入和輸出層節點。 (e) 使用上面得到的多層前饋神經網路,給定訓練實例(sales,senior,31… 35,46K…50K) ,給出後向傳播演算法一次迭代後的權重值。指出你使用的 初始權重和偏倚以及學習率。 7.3.1 判定樹歸納 判定樹歸納的基本演算法是貪心演算法,它以自頂向下遞歸的劃分-控制方式構造判定樹。 演算法在圖 7.3 中, 是一種著名的判定樹演算法 ID3 版本。 演算法的擴展將在 7.3.2 到 7.3.6 小節 討論。演算法的基本策略如下: 樹以代表訓練樣本的單個結點開始(步驟 1)。 如果樣本都在同一個類,則該結點成為樹葉,並用該類標號(步驟 2 和 3)。 否則, 演算法使用稱為信息增益的基於熵的度量作為啟發信息, 選擇能夠最好地將樣本分 類的屬性(步驟 6)。該屬性成為該結點的「測試」或「判定」屬性(步驟 7)。在算 法的該版本中,所有的屬性都是分類的,即離散值。連續屬性必須離散化。 對測試屬性的每個已知的值,創建一個分枝,並據此劃分樣本(步驟 8-10)。 演算法使用同樣的過程, 遞歸地形成每個劃分上的樣本判定樹。 一旦一個屬性出現在一個 結點上,就不必該結點的任何後代上考慮它(步驟 13)。 遞歸劃分步驟僅當下列條件之一成立停止: (a) 給定結點的所有樣本屬於同一類(步驟 2 和 3)。 (b) 沒有剩餘屬性可以用來進一步劃分樣本 (步驟 4) 在此情況下, 。 使用多數表決 (步 多數表決 驟 5)。這涉及將給定的結點轉換成樹葉,並用樣本中的多數所在的類標記它。替 換地,可以存放結點樣本的類分布。 (c) 分枝 test_attribute = a i 沒有樣本(步驟 11)。在這種情況下,以 samples 中 的多數類創建一個樹葉(步驟 12)。 屬性選擇度量 在樹的每個結點上使用信息增益 信息增益度量選擇測試屬性。 這種度量稱作屬性選擇度量或分裂 信息增益 的優劣度量。選擇具有最高信息增益(或最大熵壓縮)的屬性作為當前結點的測試屬性。該 屬性使得對結果劃分中的樣本分類所需的信息量最小,並反映劃分的最小隨機性或 「不純 性」。這種信息理論方法使得對一個對象分類所需的期望測試數目最小,並確保找到一棵簡 單的(但不必是最簡單的)樹。 設 S 是 s 個數據樣本的集合。假定類標號屬性具有 m 個不同值, 定義 m 個不同類 Ci (i = 1,..., m)。設 si 是類 Ci 中的樣本數。對一個給定的樣本分類所需的期望信息由下式給出: I ( s1 , s 2 ,..., s m ) = ? m ∑p i =1 i log 2 ( pi ) (7.1) 其中,pi 是任意樣本屬於 Ci 的概率,並用 si /s 估計。注意,對數函數以 2 為底,因為 信息用二進位編碼。 設屬性 A 具有 v 個不同值{a1 ,..., av}。 可以用屬性 A 將 S 劃分為 v 個子集{S1 ,..., Sv}; 其中,Sj 包含 S 中這樣一些樣本,它們在 A 上具有值 aj。如果 A 選作測試屬性(即,最好的 劃分屬性),則這些子集對應於由包含集合 S 的結點生長出來的分枝。設 sij 是子集 Sj 中類 Ci 的樣本數。根據 A 劃分子集的熵或期望信息由下式給出: E ( A) = v ∑ j =1 s1 j + ... + s mj s I ( s1 j ,..., s mj ) (7.2) 充當第 j 個子集的權,並且等於子集(即,A 值為 aj)中的樣本個數除 s 以 S 中的樣本總數。熵值越小,子集劃分的純度越高。注意,對於給定的子集 Sj, 項 s1 j + ... + s mj I ( s1 j , s 2 j ,..., s mj ) = ? m ∑p i =1 ij log 2 ( p ij ) (7.3) 其中, pij = s ij |Sj | ,是 Sj 中的樣本屬於 Ci 的概率。 在 A 上分枝將獲得的編碼信息是 Gain( A) = I ( s1 , s 2 ,..., s m ) ? E ( A) (7.4) 換言之,Gain(A)是由於知道屬性 A 的值而導致的熵的期望壓縮。 演算法計算每個屬性的信息增益。具有最高信息增益的屬性選作給定集合 S 的測試屬性。 創建一個結點,並以該屬性標記,對屬性的每個值創建分枝,並據此劃分樣本。 判定樹歸納。表 7.1 給出了取自 AllElectronics 顧客資料庫數據元組訓練集。 例 7.2 判定樹歸納 (該數據取自[Qui86])。類標號屬性 buys_computer 有兩個不同值(即, {yes, no}),因 此有兩個不同的類(m = 2)。設類 C1 對應於 yes,而類 C2 對應於 no。類 yes 有 9 個樣本,類 no 有 5 個樣本。為計算每個屬性的信息增益,我們首先使用(7.1)式,計算對給定樣本分類 所需的期望信息: I ( s1 , s 2 ) = I (9,5) = ? 表 7.1 RID 1 2 3 4 5 6 7 8 9 10 11 12 13 14 age <=30 <=30 31...40 >40 >40 >40 31...40 <=30 <=30 >40 <=30 31...40 31...40 >40 9 9 5 5 log 2 ? log 2 = 0.940 14 14 14 14 AllElectronics 顧客資料庫訓練數據元組 income high high high medium low low low medium low medium medium medium high medium student no no no no yes yes yes no yes yes yes no yes no credit_rating fair excellent fair fair fair excellent excellent fair fair fair excellent excellent fair excellent Class: buys_computer no no yes yes yes no yes no yes yes yes yes yes no 下一步,我們需要計算每個屬性的熵。讓我們從屬性 age 開始。我們需要觀察 age 的每 個樣本值的 yes 和 no 分布。我們對每個分布計算期望信息。 對於 age = 」<=30」 對於 age = 」31...40」 對於 age = 」>40」 s11 = 2 s12 = 4 s13 = 3 s21 = 3 s22 = 0 s23 = 2 I(s11, s21) = 0.971 I(s12, s22) = 0 I(s13, s23) = 0.971 使用(7.2)式,如果樣本按 age 劃分,對一個給定的樣本分類所需的期望信息為: 5 4 5 I ( s11 , s 21 ) + I ( s12 , s 22 ) + I ( s13 , s 23 ) = 0.694 14 14 14 因此,這種劃分的信息增益是 E (age) = gain(age) = I ( s1 , s 2 ) ? E (age) = 0.246 類 似 地 , 我 們 可 以 計 算 Gain(income) = 0.029, Gain(student) = 0.151 和 Gain(credit_rating) = 0.048。由於 age 在屬性中具有最高信息增益,它被選作測試屬性。 創建一個結點,用 age 標記,並對於每個屬性值,引出一個分枝。樣本據此劃分,如圖 7.4 所示。注意,落在分區 age = 「31...40」的樣本都屬於同一類。由於它們都屬於同一類 yes, 因此要在該分枝的端點創建一個樹葉, 並用 yes 標記。 演算法返回的最終判定樹如圖 7.2 所示。 圖 7.4:屬性 age 具有最高信息增益, 因此成為判定樹根的測 試屬性。由每個 age 引出分枝,樣本據此劃分 總而言之,判定樹歸納演算法已在廣泛的應用領域用於分類。這種系統不使用領域知識。 判定樹歸納的學習和分類步驟通常很快。 7.4.2 樸素貝葉斯分類 樸素貝葉斯分類,或簡單貝葉斯分類的工作過程如下: 1. 每個數據樣本用一個 n 維特徵向量 X = {x1 , x 2 ,..., x n } 表示,描述由屬性 A1 , A2 ,..., An 對樣本的 n 個度量。 2. 假定有 m 個類 C1 , C 2 ,..., C m 。給定一個未知的數據樣本 X(即,沒有類標號),分類法將預測 X 屬於具有最高後驗 概率(條件 X 下)的類。即,樸素貝葉斯分類將未知的樣本分配給類 Ci ,當且僅當: P (C i | X ) > P(C j | X ) 1≤ j ≤ m j ≠ i. 這樣,我們最大化 P(C i | X ) 。其 P(C i | X ) 最大的類 Ci 稱為最大後驗假定。根據貝葉斯定理((7.5)式), P (C i | X ) = P ( X | C ) P (C ) i i P( X ) (7.6) 3. 由於 P(X) 對於所有類為常數,只需要 P( X | Ci )P(Ci ) 最大即可。如果類的先驗概率未知,則通常假定這些類是等 概率的;即, P(C1 ) = P (C 2 ) = ... = P(C m ) 。並據此對只 P(C i | X ) 最大化。否則,我們最大化 P( X | Ci )P(Ci ) 。注意, 類的先驗概率可以用 P (C i ) = s i s 計算;其中,si 是類 C 中的訓練樣本數,而 s 是訓練樣本總數。 4. 給定具有許多屬性的數據集,計算 P( X | Ci ) 的開銷可能非常大。為降低計算 P( X | Ci ) 的開銷,可以做類條件獨立 類條件獨立 的樸素假定。給定樣本的類標號,假定屬性值條件地相互獨立。即,在屬性間,不存在依賴關系。這樣, P( X | C i ) = ∏ p( x k =1 n k | Ci ) (7.7) 概率 P(x1 | Ci ) , P(x2 | Ci ) ,..., P(xn | Ci ) 可以由訓練樣本估值,其中, (a) 如果 Ak 是分類屬性,則 P ( x k | C i ) = s ik s i ;其中 sik 是在屬性 Ak 上具有值 xk 的類 Ci 的訓練樣本數,而 si 是 Ci 中的訓練樣本數。 (b) 如果是連續值屬性,則通常假定該屬性服從高斯分布。因而, P ( x k | C i ) = g ( x k , ? C i , σ Ci ) = 1 2π σ Ci ? ( x ? ?Ci ) 2 2 2σ Ci e (7.8) 其中,給定類 Ci 的訓練樣本屬性 Ak 的值, g ( x k , ? Ci , σ Ci ) 是屬性 Ak 的高斯密度函數 高斯密度函數,而 ? Ci , σ Ci 分別為平 高斯密度函數 均值和標准差。 5. 為對未知樣本 X 分類,對每個類 Ci,計算 P( X | Ci )P(Ci ) 。樣本 X 被指派到類 Ci,當且僅當: P( X | C i ) P (C i ) > P ( X | C j ) P (C j ) 1≤ j ≤ m j ≠ i. 換言之,X 被指派到其 P( X | Ci )P(Ci ) 最大的類 Ci。 「貝葉斯分類的效率如何?」理論上講,與其它所有分類演算法相比,貝葉斯分類具有最小的出錯率。然而,實踐 中並非總是如此。這是由於對其應用的假定(如,類條件獨立性)的不正確性,以及缺乏可用的概率數據造成的。然 而,種種實驗研究表明,與判定樹和神經網路分類演算法相比,在某些領域,該分類演算法可以與之媲美。 貝葉斯分類還可以用來為不直接使用貝葉斯定理的其它分類演算法提供理論判定。例如,在某種假定下,可以證明 正如樸素貝葉斯分類一樣,許多神經網路和曲線擬合演算法輸出最大的後驗假定。 使用樸素貝葉斯分類預測類標號: 我們希望使用樸素貝葉斯分 例 7.4 使用樸素貝葉斯分類預測類標號 給定與例 7.2 判定樹歸納相同的訓練數據, 類預測一個未知樣本的類標號。訓練數據在表 7.1 中。數據樣本用屬性 age, income, student 和 credit_rating 描述。 類標號屬性 buys_computer 具有兩個不同值(即,{yes, no})。設 C1 對應於類 buys_computer = 「yes」,而 C2 對應於 類 buys_computer = 「no」。我們希望分類的未知樣本為: X = (age =" <= 30" , income =" medium" , student =" yes" , credit _ rating =" fair" ). 我們需要最大化 P( X | Ci )P(Ci ) ,i = 1,2。每個類的先驗概率 P(Ci ) 可以根據訓練樣本計算: P(buys_computer = yes) = 9/14 = 0.643 P(buys_computer = no) = 5/14 = 0.357 為計算 P( X | Ci ) , i = 1,2。我們計算下面的條件概率: P(age = 「<30」 | buys_computer = 「yes」) = 2/9 = 0.222 P(age = 「<30」 | buys_computer = 「no」) = 0.600 = P(income =「medium」 | buys_computer = 「yes」) 0.444 P(income = 「medium」 | buys_computer = = 「no」) 0.400 P(student = 「yes」 | buys_computer = = 「 yes」) 0.667 P(student = 「yes」 | buys_computer = = 「no」) 0.200 P(credit_rating = 「fair」 | = 0.667 buys_computer = 「yes」) P(credit_rating = 「fair」 | = 0.400 buys_computer = 「no」) 3/5 = 4/9 = 2/5 = 6/9 = 1/5 = 6/9 = 2/5 = 使用以上概率,我們得到: P(X | buys_computer = 「yes」) = 0.222×0.444×0.667×0.667 = 0.044 P(X | buys_computer = 「no」) = 0.600×0.400×0.200×0.400 = 0.019 P(X | buys_computer = 「yes」) P(buys_computer = 「yes」) = 0.044×0.643 = 0.028 P(X | buys_computer = 「no」) P(buys_computer = 「no」) = 0.019×0.357 = 0.007 因此,對於樣本 X,樸素貝葉斯分類預測 buys_computer =」 yes」。
3. C#中更改的演算法
浮雲
4. 如何改進演算法,提高程序效率
從根本上了解演算法是怎麼執行的,這樣可以做到一通百通。
一般來說,降低時間復雜度是比較好的方法。 有時候,佔用更多的內存可以幫助程序更快的運行。還有就是選用效率高的語言,例如C。
5. 如何修改快速排序演算法才能使其將輸入元素按非增序排序
指按降序排序。提供C語言的代碼參考:
#include <stdio.h>
void out(int a[], int n)
{
int i;
for(i=0;i<n;i++)
{
printf("%d ",a[i]);
}
}
void quicksort(int a[], int low, int high)
{
if (low >= high) return;
int first = low;
int last = high;
int key = a[first];
while (first<last)
{
while (first<last&&a[last] <=key) --last;
a[first] = a[last];
while (first<last&&a[first] >= key) ++first;
a[last] = a[first];
}
a[first] = key;
quicksort(a, low, first - 1);
quicksort(a, first + 1, high);
}
void main()
{
int a[10]={34,3,29,63,70,16,85,82,90,93};
quicksort(a,0,10);
out(a,10);
}
(5)更改演算法擴展閱讀:
快速排序的基本思想是:通過一趟排序演算法把所需要排序的序列的元素分割成兩大塊,其中,一部分的元素都要小於或等於另外一部分的序列元素,仍根據該種方法對劃分後的這兩塊序列的元素分別再次實行快速排序演算法,排序實現的整個過程可以是遞歸的來進行調用,最終能夠實現將所需排序的無序序列元素變為一個有序的序列。
經處理後的數據便於篩選和計算,大大提高了計算效率。對於排序,我們首先要求其具有一定的穩定性,即當兩個相同的元素同時出現於某個序列之中,則經過一定的排序演算法之後,兩者在排序前後的相對位置不發生變化。換言之,即便是兩個完全相同的元素,它們在排序過程中也是各有區別的,不允許混淆不清。
6. 抖音現在改了演算法會有什麼影響
怎麼理解呢?簡單來說,就是當用戶發布一個視頻時,鐵粉、近期關注人以及粉絲群粉絲會是該視頻的主要觀看者,如果作品播放效果不佳,那就很難進入更大的公域流量池。
「最近很多帳號流量出現嚴重下滑,大部分原因是因為抖音演算法調整。」
有知情人士指出,在以前的視頻流量里,普遍可以獲得200-500不等的基礎播放值,其中以陌生流量佔比大。
而抖音的此次演算法改動,則是將以前的「標簽」推薦為主的機制升級為「粉絲成長」的粉絲推薦邏輯,主要就是為了增加作品在核心粉絲群體面前的曝光率,將原本追求粉絲增量、轉變的策略為更強調用戶留存。如果還想知道更多關於抖音的知識可以去知乎、網路貼吧看看還可以直接網路搜索也可以到28推新者大陸的社區去看看都能找到相關的知識
7. matlab排序演算法如何修改
演算法有多啊基本演算法、數據結構演算法、數論與代數演算法、計算幾何演算法、圖論演算法、動態規劃及數值分析、加密演算法、排序演算法、檢索演算法、隨機化演算法、並行演算法等等
matlab裡面建議去下載相應工具箱數學建模工具箱有多編寫好演算法求短路徑Dijkstra演算法等等裝好help dijkstra查用法
8. 如何更改動易加密演算法
我不知道您說的是不是動易的程序的加密文件。
先說ASP的:
動易的2006版本把組件封裝到了.DLL文件里,使用網站的時候需要安裝DLL組件,這個組件地址和ASP的DLL組件放在一起了。
6.0版本以後的都是開源的了,沒有進行加密可以隨便改。
再說ASP.net版的程序,
動易的.net版也是加密的,用的是.net自帶的封裝技術,也是.dll封裝的,放在/bin/文件下,是.net自帶的功能所以不用另行安裝什麼組件。
.net版本就分開發和發布兩部分,發布出來的就是加密的了。
是否能破解?
.DLL組件是微軟沿用到現在的封裝技術,明確告訴你,無法破解或反編譯,如果您能,就證明微軟被破解了,微軟必須開發新的封裝技術了。
如果您說的是用戶的密碼加密文件,就是MD5的,找MD5文件替換就行了,這個是可以改的,我覺的您的我問題提的優點模糊呵呵
如還不明白,或者我理解錯誤請站內簡訊通知我,我會給您解答!
9. 如何算改進了一個演算法,怎麼改才叫改進了呢
我認為,所謂「改進」就是使發現原演算法的不足之處,並優化之,結果是使該演算法效率大大提高高,或者適用度更廣泛,如果「改進」後的演算法不比之前的更優,就不能算改進。反之,只要能夠大大提高改演算法的效率,或者使該演算法適用度更廣,就算是改進。至於改進一個細節,如果是一個重要的細節,當然也算是改進。
不過,演算法都是高手發明的,他們在公布之前一定將這種演算法優化過了,如果要再改進,那一定要非常細心或者比他更高才行。
10. 百度為什麼要經常改變演算法呢
演算法的改變,肯定是為了用戶體驗,也讓網站更有「秩序」,不管網路怎麼去變,用戶體驗是不會變的