問題:老闆忘了保險箱的密碼,他只記得是四位數字,前兩個數字相同,後兩個數字也相同,並且該數字是乙個數的平方,請幫忙找回該老闆的密碼
對於這個問題,至少有三種解法,因為我只想到了三種:)
下面用php來實現
// 解法一function
getpwd() }
} return
$arr
; }
$rs= getpwd();
print_r($rs
); 演算法很簡單,乙個形如aabb的數,一定是由1100*a + 11*b組成的,如果這個數開方與ab相等,那這個數就是密碼。
執行結果:
array( [0] =>
7744
) 只有乙個,哦也。
雖說是找到密碼了,但這個演算法卻不是最優的。巢狀迴圈會執行8*9=72次。
執行的時間為:0.0003秒
下面看看演算法二:
// 解法二function
isvalid(
$num)
function
getpwd() }
return
$arr
; }
$rs= getpwd();
print_r($rs
); 這個演算法比上面的好一些,因為做了預判斷,四位數的範圍是1000-9999,所以迴圈的範圍就限制到了32*32至100*100,迴圈次數為68次,執行時間約為0.0002秒
但這還不是最優的,下面看演算法三:
// 演算法三function
isvalid(
$num)
function
getpwd() }
return
$arr
; }
$rs= getpwd();
print_r($rs
);
array( [0] =>
7744
) 這個演算法做了更多的分析,形如aabb的能被11整除並能開方的數也一定能被121整除,於是可以確定迴圈的範圍為1100/121的平方根至9999/121的平方根,取整後的範圍為3-10,這意味著只需要迴圈7次就能找出所有的結果。可見,演算法三是這三種演算法中效率最高的。
找回MysQL密碼
由於前段時間要用powerdesigner設計資料庫,可資料庫設計好後好匯入mysql時需要odbc連線,而mysql5.0以上的均要修改密碼 我在網上查過 按他們的意思修改了root密碼,結果是直接進不了mysql了,我那個鬱悶,在網上查詢資料,也按他們的方法做了,可還是不行 本人對dos不熟 但...
MySQL 找回密碼
windows 1.關閉正在執行的mysql。2.開啟dos視窗,轉到mysql bin目錄。3.輸入mysqld skip grant tables回車。如果沒有出現提示資訊,那就對了。4.再開乙個dos視窗 因為剛才那個dos視窗已經不能動了 轉到mysql bin目錄。5.輸入mysql回車,...
MAC找回密碼
首先將mac關機,然後重新開機,按下電源鍵的同時,立刻按住鍵盤上的command鍵 r鍵不要鬆手 2等待載入過去 選擇 以簡體中文作為主要語言 點選下方的箭頭繼續 點選螢幕頂端工具欄上的 實用工具 選項 選擇 終端 開啟終端後,輸入 resetpassword,然後點回車 點了回車後,終端介面後面會...