锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 鏄笉鏄湁鐐瑰尓澶鋒墍鎬濓紵鍫ОPerl涓殑娣蜂貢浠g爜(Obfuscated Code)銆傛墍浠ユ鍒欒〃杈懼紡榪欎釜鐜╂剰錛岀敤寰楀ソ浜嗕笉璇達紝宸ㄥ己澶ф棤姣旓紝鍙槸鏅︽訂璧鋒潵涔熶笉杈撲簬鏈哄櫒鐮併傛垜鐜板湪瀵筆erl浜嗚В涓嶅錛屼笂闈㈣繖琛屾鍒欒〃杈懼紡灝辮鎴戦儊闂蜂簡寰堜箙錛屽垰鐪嬪埌灝辮挋浜嗭細?:鍜?>鏄粈涔堜笢瑗匡紵璧剁揣緲誨嚭Programming Perl鐪嬶紝鍘熸潵鏄疨erl鐨凟xtented Regular Expression鈥︹︽伓琛ヤ簡涓闃典箣鍚庡洖澶存潵鐞㈢(錛岀粓浜庡ぇ鑷存槑鐧藉叾涓殑閬撶悊銆?br />
class A
{
public:
聽聽聽 template <typename T>
聽聽聽 T f(T val);
聽聽聽 template <>
聽聽聽 int f<int>(int val);
};
鎴戠敤鐨勬槸g++ 3.4.2 mingw鐗堟湰銆傜紪璇戜笂闈㈣繖孌典唬鐮佹椂錛岄敊璇俊鎭涓嬶細
5: error: invalid explicit specialization before '>' token
5: error: explicit specialization in non-namespace scope `class A'
濡傛灉鎶奻鐨勫畾涔夋斁鍒板叏灞浣滅敤鍩熶腑錛屽氨涓嶄細鍑洪敊銆傝屼笂闈㈣繖孌典唬鐮佸湪VC++ 8.0涓嬪彲浠ョ紪璇戦氳繃銆傝繍琛岃搗鏉ヤ篃娌℃湁闂銆傚埆鐨勭紪璇戝櫒鎴戞病鏈夎瘯榪囥?br />
Update錛氬璋㈠懆鏄熸槦鐨勬寚鐐癸紝姣旇緝鈥滃父瑙勨濈殑鍐欐硶濡備笅:
class A
{
public:
聽聽聽 template <typename T>
聽聽聽 T f(T val);
};
template <typename T>
T A::f(T val)
{
聽聽聽 // ...
}
template <>
int A::f<int>(int val)
{
聽聽聽 //...
}
榪欑鍐欐硶灝辨病鏈変換浣曢棶棰?鍦╣++ 3.4.2鍜孷C++ 8.0涓嬪潎琛ㄧ幇姝e父錛夈傝嚦浜庝負浠涔堝墠闈㈢殑鍐欐硶瀵艱嚧g++涓嬫姤閿欙紝榪樹笉鏄緢娓呮銆?img src ="http://m.shnenglu.com/chengmeng/aggbug/13604.html" width = "1" height = "1" />
]]>
鍘嗗彶錛氶珮綰х▼搴忚璦鐨勮佺瀹楋紝Fortran錛屽婧愮▼搴忎腑鐨勫悕瀛楋紝鎴栬呭彨鏍囪瘑絎?identifier)鏈夊緢涓ユ牸鐨勮瀹氾紝璀棣栧瓧姣嶄唬琛ㄥ彉閲忕殑綾誨瀷絳夌瓑銆備釜浜鴻涓鴻繖鏄綋騫寸紪璇戞妧鏈繕鏈垚鐔熸椂鐨勬潈瀹滀箣璁°傚悗鏉ヤ富嫻佺殑紼嬪簭璁捐璇█閮芥斁鏉句簡瀵瑰悕瀛楃殑闄愬埗錛屽儚C/C++/Java錛屽彧鏈変竴鐐圭偣灝忓皬鐨勭害鏉燂紙瀵規墍鐢ㄥ瓧絎︾殑闄愬埗錛氬彧鑳戒嬌鐢ㄨ嫳鏂囧瓧姣嶃佹暟瀛椼佷笅鍒掔嚎錛屽繀欏諱互涓嬪垝綰挎垨鑻辨枃瀛楁瘝寮澶淬傝繖涔熷鏄撶悊瑙o紝瀹屽叏鏄負浜嗗啓璇嶆硶鍒嗘瀽鍣ㄧ殑鏂逛究錛夈傝屽拰Fortran鍚屾椂浠g殑Lisp錛岃繖鏂歸潰鏇存槸澶у紑緇跨伅錛岀埍鎬庝箞瀹氫箟鎬庝箞瀹氫箟銆傜劧鑰屽埌浜嗙幇鍦紝浼間箮鏈夌偣澶嶅彜鐨勬疆嫻侊紝鏈変簺璇█寮濮嬪鍚嶅瓧璁劇珛涓浜涜鍒欙紝姣斿Haskell,Erlang,鍖呮嫭Ruby銆?br />
璦褰掓浼犮俁uby涓殑鍚嶅瓧瑙勫垯涓昏鏄牴鎹悕瀛楃殑絎竴涓瓧姣嶆潵鍐沖畾榪欎釜鍚嶅瓧鐨勪嬌鐢ㄦ柟寮忋傚叿浣撴潵璇達紝
鏈夌偣Perl鐨勫懗閬擄紝浣哖erl鏇村姞鍙樻侊紝灞呯劧瑕佷互棣栧瓧姣嶅尯鍒嗘爣閲忋佹暟緇勫拰Hash琛紝榪欏氨涓嶅お浜洪亾浜嗐傜浉姣旇搗鏉ワ紝Ruby鐨勮緗繕鏄彲浠ユ帴鍙楃殑錛屽畠鍙笉榪囨槸鎶婃湁浜涚害瀹氫織鎴愮殑瑙勫垯鐩存帴鍙樻垚浜嗚璦瑙勫垯銆傛瘡涓▼搴忓憳鍩烘湰涓婇兘浼氭湁鑷繁鐨勪竴濂楀懡鍚嶈鍒欙紝姣斿鍐機++紼嬪簭鏃訛紝綾誨悕閫氬父鐢ㄥぇ鍐欏瓧姣嶅紑澶達紝瀹忓悕鍒欓氬父鐢卞ぇ鍐欏瓧姣嶇粍鎴愶紝鑰屼笅鍒掔嚎寮澶寸殑錛堢壒鍒槸鍙屼笅鍒掔嚎錛夊線寰鐣欑粰搴撳紑鍙戣呯瓑絳夈俁uby鐨勬兂娉曞彲鑳芥槸錛氬共鑴嗙粺涓浜嗚繖浜涘懡鍚嶈鍒欙紝鍏嶅緱浜轟滑涓鴻繖縐嶉鏍?Style)闂浜夎涓嶄紤銆備篃鏄尯鏈夐亾鐞嗙殑銆?img src ="http://m.shnenglu.com/chengmeng/aggbug/13156.html" width = "1" height = "1" />
Example錛欰_NUM
]]>
Ruby鐨勬簮浠g爜榪樺厖鍒嗕綋鐜頒簡鎷挎潵涓諱箟鐨勭簿紲烇紝鑳介噸鐢ㄧ殑鍐充笉鑷繁鍐欙細姣斿Hash琛ㄥ氨鐢ㄤ簡涓涓氱敤鐨凥ash琛ㄥ疄鐜幫紝姝e垯琛ㄨ揪寮忓垯浣跨敤浜咷NU鐨剅egex搴擄紝random鏄湁鍚嶇殑MT19937錛堜篃鏄棩鏈漢鍐欑殑錛夈傚皾璇曚簡涓涓嬬紪璇戯紝鍦╩ingw涓婃墽琛屾爣鍑嗕笁閮ㄦ洸錛?/configure,make,make install錛屼竴鍒嘜K銆?br />
]]>
size_t little(size_t i)
{
聽聽聽 size_t ones = calc_ones(i);
聽聽聽 if(ones == i)
聽聽聽聽聽聽聽 cout << i << "\n";
聽聽聽 if(i < ones)
聽聽聽聽聽聽聽 if((ones - i)/9 > 1)
聽聽聽聽聽聽聽聽聽聽聽 return i - (ones - i)/8;
聽聽聽 if(i > ones)
聽聽聽聽聽聽聽 return ones;
聽聽聽 return i - 1;
}
榪欐槸C++鐗堟湰銆備富寰幆涔熻鐣ュ井鏀瑰彉涓涓嬶細
void solve()
{
聽聽聽 size_t max = 10000000000;
聽聽聽 for(size_t i = max;i > 0;i = little(i));
}
鍙互鐪嬪埌錛岀幇鍦ㄥ驚鐜粠澶у埌灝忋俵ittle鍑芥暟鎵懼埌涓嬩竴涓彲鑳芥弧瓚抽鐩害鏉熺殑i銆傚湪little鍑芥暟涓紝棣栧厛璁$畻灝忎簬i鐨?鐨勪釜鏁皁nes錛屽鏋渙nes鍜宨鐩哥瓑錛屽氨灝唅杈撳嚭錛堣繖灝辨槸棰樼洰瑕佹眰騫茬殑浜嬶級銆傚鏋渋灝忎簬ones錛岄偅涔堝氨瑕佸湪灝忎簬i鐨勮嚜鐒舵暟涓壘涓嬩竴涓彲鑳芥弧瓚蟲潯浠剁殑鏁般傚洜涓烘悳绱㈢殑鑼冨洿涓嶈秴榪?0^10錛屾墍浠ヤ竴涓暟涓嚦澶氬惈鏈?涓?錛屾寜鐓ц繖縐嶆瀬绔儏鍐碉紝涔熷繀欏誨皢i鍑忓皯(ones-i)/8鎵嶆湁鍙兘婊¤凍鏉′歡(榪欓噷涔嬫墍浠ユ槸8錛屽洜涓哄悓鏃秈涔熷噺灝戜簡錛夈傚鏋渋澶т簬ones錛岃冭檻涓涓皬浜巌鐨勬暟i'錛屽彲浠ヨ冭檻涓涓媍alc_ones(i')鐨勫彇鍊鹼紝鏋佺鎯呭喌錛孾i',i)鐨勮寖鍥村唴鐨勬暣鏁版病鏈変竴涓寘鍚?錛屼篃灝辨槸璇村綋i鍑忓皯鍒癷'鏃?鐨勪釜鏁版病鏈夋崯澶憋紝閭d箞calc_ones(i') = calc_ones(i)錛屽鏋渋'>calc_ones(i)錛屽垯灝辨湁i'>calc_ones(i')錛岀洿鍒癷'=calc_ones(i)錛屽洜姝や笅涓涓渶瑕佹煡鐪嬬殑鏁板氨鏄痗alc_ones(i)銆傚叾瀹炰笂闈㈣繖涓孌佃璁哄彲浠ョ敤涓涓紡瀛愭潵姒傛嫭錛氬i'<i,calc_ones(i)-9*(i-i') <= calc_ones(i') <= calc_ones(i)銆傝繖鏍峰氨鑳藉ぇ澶ф彁楂橀熷害浜嗐?br />
]]>
]]>
]]>
鎴戠殑瑙f硶錛?br />
#include <iostream>
#include <limits>
#include <cstddef>
using namespace std;
size_t calc_ones(size_t n)
{
聽聽聽 const size_t save = n;
聽聽聽 size_t sum = 0,ten = 1,cnt = 1;
聽聽聽 if(n%10 > 1)
聽聽聽聽聽聽聽 sum = 1;
聽聽聽 n /= 10;
聽聽聽 for(;n;n /= 10)
聽聽聽 {
聽聽聽聽聽聽聽 size_t r = n%10;
聽聽聽聽聽聽聽 if(r == 1)
聽聽聽聽聽聽聽聽聽聽聽 sum += save + (r*cnt - 10*n)*ten;
聽聽聽聽聽聽聽 else if(r != 0)
聽聽聽聽聽聽聽聽聽聽聽 sum += (10 + r*cnt)*ten;
聽聽聽聽聽聽聽 ten *= 10;
聽聽聽聽聽聽聽 ++cnt;
聽聽聽 }
聽聽聽 return sum;
}
void solve()
{
聽聽聽 size_t max = numeric_limits<size_t>::max();
聽聽聽 for(size_t i = 1;i < max;++i)
聽聽聽聽聽聽聽 if(calc_ones(i) == i)
聽聽聽聽聽聽聽聽聽聽聽 cout << i << "\n";
}
int main()
{
聽聽聽 solve();
聽聽聽 return 0;
}
鍦╒S2005涓嬬紪璇戣繍琛岋紝杈撳嚭緇撴灉涓猴細
199992 199993 199994 199995 199996 199997 199998 199999 200000 1599992 1599993 1599994 1599995 1599996 1599997 1599998 1599999 1600000 1600001 2600000 13200000 13200001 35000000 35199992 35199993 35199994 35199995 35199996 35199997 35199998 35199999 35200000 117463827 500000000 500199992 500199993 500199994 500199995 500199996 500199997 500199998 500199999 500200000 501599992 501599993 501599994 501599995 501599996 501599997 501599998 501599999 501600000 501600001 502600000 513200000 513200001 535000000 535199992 535199993 535199994 535199995 535199996 535199997 535199998 535199999 535200000
鍙互璇佹槑錛屽啀寰涓婂氨娌℃湁浜嗐傝窇寰楁瘮杈冩參錛岄渶瑕佸ソ鍑犲垎閽熴傛垜鑰冭檻榪囪繘涓姝ョ緝灝忔绱㈢殑鑼冨洿錛屽簲璇ユ槸鍙互鍋氬埌鐨勶紝涓嶈繃娌℃湁瀹炵幇銆?br />
Update錛氫笂闈㈢殑綆楁硶鏈夊緢澶х殑鏀硅繘浣欏湴錛屼富瑕佹潵鑷紶娌堥箯鍚屽緇欏嚭鐨勭▼搴忥紝鎴戜笓闂ㄥ啓浜嗕竴綃囨枃绔犳潵璁ㄨ錛?a href="/chengmeng/archive/2006/09/16/12548.html">榪欓噷銆傛垨鑰呭彲浠ョ洿鎺ョ湅寮犳矆楣忓悓瀛︾殑鏂囩珷銆?br />
]]>
Turbo涓嬭澆
Update錛氳涓涓嬩笅杞芥枃浠剁殑鎯呭喌銆傛湁涓や釜閮ㄥ垎錛屼竴涓槸prerequisites錛屽彟涓涓槸main installation銆傚鎬殑鏄痯rerequisites褰撲腑榪樺寘鎷?NET Framework 1.1錛屾槸涓嶆槸澶猳ld浜嗕竴鐐癸紵榪欓儴鍒唒rerequisites鍜孊orland Develop Studio鍩烘湰涓婃槸涓鏍風殑銆?br />
緇х畫Update錛氬緢涓嶅垢錛屾湭鑳芥垚鍔熴傚畨瑁呬簡涓閬嶄箣鍚庯紝鍚姩鏃舵帴榪炰繚閿欙紝浼間箮鏄湪璇誨彇rtl100.bpl鍜宑oreide100.bpl鐨勬椂鍊欏嚭浜嗘閿欒錛岀粨鏋淚DE鏄惎鍔ㄤ簡錛屽拰C++鏈夊叧鐨勯」鐩繕鏈夌粍浠朵竴涓兘娌℃湁鈥︹﹁櫧鐒惰繕鍓╀簡璇稿緙栬瘧鍣ㄥ拰緙栬緫鍣ㄨ皟璇曞櫒絳夊唴瀹癸紝浣嗘剰涔変笉澶с傝冭檻鍒版満瀛愪笂鍘熸潵榪樿浜嗕釜C++ Builder 6錛屽嵏涔嬶紝鍐嶉噸瑁呬竴閬峊urbo C++錛岃繕鏄佹牱瀛愨︹﹀交搴曟斁寮冦?br />
]]>
榪樻槸鐩存帴緇欏嚭浠g爜錛?br />
#include <iostream>
#include <string>
using namespace std;
int main()
{
聽聽聽 const char *p = string("hello").c_str();
聽聽聽 cout << p << endl;
聽聽聽 return 0;
}
鎯蟲兂杈撳嚭緇撴灉鏄粈涔堬紵
榪欐椂VS2005鍜実++鐨勭粨鏋滃氨涓嶄竴鏍蜂簡銆俈S2005涓婁粈涔堥兘涓嶈緭鍑猴紝鑰実++ 3.4涓婂垯杈撳嚭浜嗕技涔庨潪甯稿悎鐞嗙殑緇撴灉錛歨ello錛岀鍚堝緢澶氫漢鐨勯鏈熴備笉榪囨煡浜嗘爣鍑嗕互鍚庯紝榪樻槸鎶婄エ鎶曠粰VS2005銆?br />
棣栧厛錛?font face="Courier New">string("hello")浜х敓浜嗕竴涓猼emporary object錛屾垨鑰呰涓存椂瀵硅薄銆侰++鏍囧噯瀵逛復鏃跺璞$殑鐢熷瓨鏈?life time)鏈夋槑紜殑瑙勫畾錛屽彲瑙佹爣鍑?2.2鑺傜3-5鏉°傜3鏉¤璁轟簡涓存椂瀵硅薄鐨勬瀽鏋勬椂闂達細
3. ... Temporary objects are destroyed as the last step in evaluating
the full-expression (1.9) that (lexically) contains the point where
they were created. This is true even if that evaluation ends in
throwing an exception.
榪欏張娑夊強鍒癴ull-expression鐨勫畾涔変簡錛屽弬瑙?.9鑺傘傛暣涓p鐨勫垵濮嬪寲鏋勬垚浜嗕竴涓猣ull-expression銆傚湪涓嬬粨璁轟箣鍓嶏紝榪樿鍏堢湅鐪嬬4銆?鏉★紝鍒嗗埆璁ㄨ浜嗕袱涓緥澶栨儏褰紝涓涓槸灝嗕復鏃跺璞′綔涓哄垵濮嬪寲瀛愶紝渚嬪string s = string("hello")錛涚浜屾槸灝嗕竴涓紩鐢ㄥ彉閲忕粦瀹氬埌榪欎釜涓存椂瀵硅薄涓婏紝渚嬪const string &s = string("hello")錛屾昏岃█涔嬶紝鍦ㄨ繖涓ょ鎯呭艦涓彲浠ラ氳繃涓涓悕瀛楁潵瀛樺彇榪欎釜瀵硅薄錛屾瀵硅薄鐨勭敓瀛樻湡灝卞歡闀垮埌鍙橀噺鍚嶇殑浣滅敤鍩熺粨鏉熴傞櫎姝や箣澶栵紝閮芥寜鐓х3鏉″鐞嗐?br />
鏈変簡榪欎簺鍑嗗錛屾嬁鍓嶉潰緇欑殑渚嬪瓙寰閲屽灝辨槑鐧戒簡錛氳繖閲屾病鏈夊嚭鐜?銆?鎵鎸囧嚭鐨勪緥澶栵紝鍥犳絎?鏉$殑鍘熷垯閫傜敤銆傝屼笉綆ull-expression濡備綍錛屽彲浠ョ‘瀹氱殑鏄湪p琚垵濮嬪寲涔嬪悗涓存椂瀵硅薄string("hello")鐨勬瀽鏋勫嚱鏁板氨搴旇琚皟鐢ㄣ傚湪VS2005涓繘琛岃皟璇曪紝鍙互鍙戠幇string鏋愭瀯鍑芥暟璋冪敤鐨勬椂闂村氨鍦╬琚垵濮嬪寲涔嬪悗錛岃鍙?font face="Courier New">cout << p << endl鎵ц涔嬪墠銆傛墜澶存病鏈夋柟渚跨殑宸ュ叿鏉ヨ皟璇昰++緙栬瘧鍑烘潵鐨勭▼搴?涓嶅お浼氱敤gdb璋冭瘯C++紼嬪簭錛岀壒鍒秹鍙婂埌STL)銆傝嚦浜庝箣鍚巔鎸囧悜鐨勫唴瀛樺埌搴曞浣曪紝鍒欏拰鍏蜂綋鐨剆tring瀹炵幇鐩稿叧浜嗐傝繖鏍峰垎鏋愪笅鏉ワ紝VS2005鐨勭粨鏋滆繕鏄瘮杈冧笉閿欑殑錛岃実++鐨勭粨鏋滃垯瀹規槗璁╀漢浜х敓璇В銆?br />
Update錛氬療鐪媑++緙栬瘧鍑烘潵鐨勬眹緙栦唬鐮侊紝鍙戠幇g++鍚屾牱鍦ㄨ〃杈懼紡姹傚煎悗鏋愭瀯浜嗕復鏃跺璞★紝鍙笉榪囩敱浜庡疄鐜頒笂鐨勫師鍥狅紝p鎸囧悜鐨勫唴瀹硅繕娌℃湁娓呯┖銆?img src ="http://m.shnenglu.com/chengmeng/aggbug/12024.html" width = "1" height = "1" />
]]>
聽
def sievePerformance(n)
聽聽聽 r = Benchmark.realtime() do
聽聽聽聽聽聽聽 sieve = Array.new(n,true)
聽聽聽聽聽聽聽 sieve[0..1] = [false,false]
聽聽聽聽聽聽聽 2.upto(n) do |i|
聽聽聽聽聽聽聽聽聽聽聽 if sieve[i]
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 (2*i).step(n,i) do |j|
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 sieve[j] = false
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 end
聽聽聽聽聽聽聽聽聽聽聽 end
聽聽聽聽聽聽聽 end
聽聽聽 end
聽聽聽 r
end
榪欐浠g爜鎶勮嚜鍓嶉潰Robert C.Martin鍏堢敓鐨刡log錛屽絳涙硶浣滄ц兘嫻嬭瘯銆傚垵鐪嬭搗鏉ワ紝紼嬪簭鐨勪富浣撴槸浜岄噸寰幆錛屽洜姝ょ畻娉曠殑澶嶆潅鎬уソ鍍忔槸O(N2)涔嬬被鐨勭帺鎰忥紵瑕佷箞鏄疧(NlnN)錛?br />聽
涓嬪浘鏄疪uby鑷甫鐨刡enchmark妯″潡嫻嬮噺鐨勭粨鏋滐紝涓婇檺N浠?0000鍒?00000錛屾闀?0000銆俁ober C.Martin鐨勬枃绔犻噷涔熸湁涓寮犲浘錛屾槸浠?000000鍒?000000錛屼粠鍥句腑鍙互鐪嬪埌錛屼粬鐢佃剳鐨勬ц兘榪滆儨浜庢垜錛屾垜瑕佹槸浠?000000鍒?000000榪欎箞璺戜竴閬嶏紝鑺卞効閮借阿浜嗏︹︽諱箣錛屽疄嫻嬬殑緇撴灉鏄細榪欎釜綆楁硶鐨勬ц兘鍩烘湰涓婃槸綰挎х殑銆傚嚭浜庡ruby榪欐牱鐨勮В閲婂瀷璇█鐨勬煇縐嶄笉淇′換錛屾垜鍙堟妸榪欐紼嬪簭鐢–++閲嶅啓浜嗕竴閬嶏紝鎷緾鏍囧噯搴撴彁渚涚殑clock鍑芥暟嫻嬮噺鏃墮棿錛岀粨鏋滃湪N灝忎簬10000000鐨勬椂鍊欙紝鍩烘湰涓婂憟綰挎э紝浣嗗啀寰鍚庤姳璐圭殑鏃墮棿灝卞紑濮嬭秴榪囩嚎鎬у闀夸簡銆?br />
涓嬮潰鎴戠粰涓涓瘮杈冪矖鐣ョ殑鍒嗘瀽錛岃В閲婁負浠涔堣繖涓畻娉曠殑澶嶆潅搴﹁〃鐜頒負綰挎с傞鍏堬紝鎴戣涓轟富瑕佽姳璐規椂闂寸殑鏄sieve鏁扮粍鐨勮鍐欙紝寰幆鍙橀噺鐨勫鍔犲簲璇ュ彲浠ュ拷鐣ャ傚鏋減<N鏄礌鏁幫紝閭d箞灝辮榪涘叆鍐呭驚鐜皢i鐨勫嶆暟鈥滄寲鎺夆濓紝涔熷氨鏄sieve鐨勭浉搴斿厓绱犺祴鍊鹼紝瑕佽繘琛孾N/p]-1嬈°傝繖鏍峰氨寰楀埌鎬誨叡鐨勮祴鍊兼鏁癝涓猴細
鍏朵腑p涓虹礌鏁般傛樉鐒?br />
鏁拌涓湁涓狹ertens瀹氱悊鍙互浼拌涓婇潰鎷彿涓殑鍜屽紡錛岀粨鏋滀負
鍏朵腑c鏄竴涓父鏁般傚彲浠ョ湅鍒幫紝鍦∟寰堝ぇ鏃跺拰寮忕殑涓昏閮ㄥ垎涓篘lnlnN銆傝宭nlnN鏄竴涓闀挎瀬鎱㈢殑鍑芥暟錛宭nln105=2.44錛宭nln109=2.91錛屽嚑涔庡氨鍙互褰撳父鏁板鐞嗭紙鑷沖皯鍦?2浣嶆棤絎﹀彿鏁存暟鑼冨洿鍐咃級銆傚叾浠栫殑涓浜涢」錛屾瘮濡傚驚鐜彉閲忕殑姝ヨ繘錛岄兘鏄疧(N)錛岃繖涔熷氨涓嶉毦鐞嗚В鏁翠釜紼嬪簭鐨勬ц兘鏄嚑涔庢槸O(N)浜嗐?br />
Update錛氫笂闈㈢殑浠g爜鏈変釜寰堟槑鏄劇殑闂錛屽氨鏄唴寰幆搴旇浠巌*i寮濮嬶紝鑰屼笉鏄?*i錛岃繖鏍峰浜庢瘮杈冨ぇ鐨凬錛屾ц兘鎻愰珮寰堟槑鏄撅紙鎺ヨ繎涓鍗婏級銆傚彟澶栦竴涓彲鏀硅繘鐨勫湴鏂規槸澶栧眰寰幆鐨剈pto(n)錛屽彲浠ユ敼涓簎pto(Integer(Math.sqrt(n))錛屽叾瀹炶繖涓や釜鏀瑰姩鏁堟灉鏄噸鍙犵殑錛屼換鎰忔敼涓涓氨宸笉澶氫簡銆傝祴鍊兼鏁癝搴斾負錛?br />
緇撴灉涓猴細
鍙互鐪嬪埌鏁堢巼鐨勬彁鍗囨槸寰堟槑鏄劇殑錛屾瘯绔焞nln232涔熸墠涓嶅埌3.1錛宭n2綰︿負0.7銆?br />
]]>
鐢℉askell鍐欎簡涓や釜鎺掑簭綆楁硶錛屽揩閫熸帓搴忓拰鍚堝茍鎺掑簭銆傞兘寰堢煭錛屾病鍑犺紼嬪簭錛岃櫧鐒舵晥鐜囪偗瀹氭槸涓嶆暍鎭淮鐨勶紝浣嗚兘鐢ㄦ潵婊¤凍鎴戜滑閭h嚜嬈烘浜虹殑緹庢劅錛岃█綆鎰忚祬涓嶆槸寰堥珮鐨勫鐣屼箞錛熶笉綆℃槸鍐欐枃绔犺繕鏄啓紼嬪簭閮藉樊涓嶅銆備絾鍚屾椂瑕佹竻妤氾紝瑕佸彲璇繪с傝浜嗚繖涔堝榪樻槸鐪嬬湅鎴愭灉鍚э細module Sort where
鍏跺疄鍙埄鐢ㄤ簡閫掑綊鍜孒askell寮哄ぇ鐨勫垪琛ㄥ鐞嗗姛鑳姐傝繖涔熶笉鏄疕askell鐨勪笓鍒╋紝鎴戠浉淇ython鎴朢uby鎴朙isp涔熷畬鍏ㄨ兘鍋氬埌銆?img src ="http://m.shnenglu.com/chengmeng/aggbug/11424.html" width = "1" height = "1" />
-- Quick Sort Algorithm
quicksort [] = []
quicksort (x:xs) =
quicksort [y | y <- xs,y <= x]
++ [x] ++
quicksort [y | y <- xs,y > x]
-- Merge two ordered sequences
merge' [] [] = []
merge' lst [] = lst
merge' [] lst = lst
merge' (x1:xs1) (x2:xs2) =
if x1 < x2
then x1:(merge' xs1 (x2:xs2))
else x2:(merge' (x1:xs1) xs2)
-- Merge Sort Algorithm
mergesort [] = []
mergesort (x:[]) = [x]
mergesort lst =
let parts = splitAt (div (length lst) 2) lst
in merge' (mergesort (fst parts))
(mergesort (snd parts))
]]>module Prime where
prime' [] = []
prime' (x:xs) =
x:(prime' (filter (\y -> (mod y x)/=0) xs))
prime n =
prime' [2.. n]
鍛靛懙錛岀浉褰撶殑綆媧佹槑浜嗭紝鏈夌偣functional鐨勫懗閬撲簡銆傝璧鋒潵榪欎釜紼嬪簭鏄鑳戒綋鐜扳滅瓫娉曗濈殑錛屾瘯绔?font face="Courier New">filter灝辨槸涓涓瓫瀛愩傛悶浜嗗崐澶╋紝濂藉儚閮藉湪鑷じ錛屼笉鐭ラ亾鏈夋病鏈夋洿濂界殑鍐欐硶銆?br />
]]>sub is_prime {
my ($number) = @_;
return (1 x $number) !~ m/\A (?: 1? | (11+?)(?> \1+)) \Z/xms;
}
鍘熺悊鍏跺疄寰堢畝鍗曪紝灝辨槸鏈鍘熷鐨勬柟娉曪細濡傛灉瑕佸喅瀹氭鏁存暟N鏄笉鏄礌鏁幫紝灝辨嬁灝忎簬N鐨勬鏁存暟(浠?寮濮?鎸ㄤ釜鍘婚櫎錛屽鏋滃彂鐜伴櫎灝藉垯琛ㄦ槑鏄悎鏁般傚綋鐒訛紝0鍜?瑕佺壒孌婂鐞嗭紝浠栦滑涓や釜閮戒笉鏄礌鏁幫紝鍓嶉潰姝e垯琛ㄨ揪寮忎腑鐨??灝辨槸涓轟簡榪欎釜鐩殑銆傝?11+?)(?> \1+)灝卞紑濮嬩簡寰幆媯楠岀殑榪囩▼銆傝繖鍏朵腑鐨勮繃紼嬪緢鏈夋剰鎬濓紝鏈濂芥槸鎷縋erl鐨剅e妯″潡鏉ebug涓涓嬶紝鍙鍦ㄦ枃浠跺紑澶村姞涓妘se re"debug"灝辨垚浜嗭紝鎵ц鏃朵細璇︾粏鐨勮緭鍑烘暣涓尮閰嶇殑榪囩▼銆傛垜浠幇鍦ㄥ氨鏉ヨ窡韙竴涓嬶紝鍦ㄥ尮閰嶆椂鍒板簳鍙戠敓浜嗕粈涔堝ソ鐜╃殑浜嬫儏銆?br />
(1 x $number)鍒涘緩浜嗕竴涓暱搴︿負$number錛屽叏閮ㄧ敱'1'緇勬垚鐨勪覆銆傞鍏堬紝(11+?)鍙互鍖歸厤闀垮害涓嶅皬浜?鐨勫叏鐢?1'緇勬垚鐨勫瓧絎︿覆銆傚亣濡傛垜浠嬁"1111"鍘誨尮閰嶏紝閭d箞棣栧厛(11+?)浼氬尮閰嶆暣涓覆錛屽茍灝嗚繖閮ㄥ垎鍖歸厤鍒扮殑鍐呭淇濆瓨鍦╘1涓傜劧鍚庡線涓嬭蛋錛岃繖鏃剁浜岄儴鍒嗙殑瑕佹眰涓嶈兘婊¤凍浜嗏斺??> \1+)銆傛殏涓斾笉綆?>鏄粈涔堟剰鎬濓紝榪欎釜琛ㄨ揪寮忕殑瑕佹眰灝辨槸鍓嶉潰鍖歸厤鍒扮殑閮ㄥ垎閲嶅鍑虹幇涓嬈′互涓?鐪嬪埌榪欓噷鍙兘宸茬粡鏈変漢鏄庣櫧浜嗭紝榪欎笉灝辨槸鏁撮櫎涔堬紵鍙樻佹暣闄わ紒)錛屼絾鏄洰鍓嶇殑鍖歸厤涓嶆弧瓚寵姹傦細鏁翠釜涓查兘鍖歸厤鍏変簡錛屽彧鍓╀笅涓涓猏Z浜嗐傛墍浠ユ垜浠敮鐗╀富涔夌殑姝e垯琛ㄨ揪寮忓紩鎿庝細backtracing(鍥炴函)錛屽線鍥為涓姝ワ紝璁?11+?)鍙尮閰?111"錛屼絾榪欐牱榪樻槸涓嶈錛屽彧濂藉啀寰鍥為錛岃繖鏃朵綘鍙戠幇錛孿1涓殑鍐呭鏄?11"錛屽墿涓嬬殑閮ㄥ垎涔熸槸"11"錛屽尮閰嶆垚鍔熶簡銆傚叾瀹炶繖鍙槸4=2*2鐨勫彟涓縐嶈娉曘傛敞鎰忓埌鍑芥暟涓殑鍖歸厤榪愮畻絎︽槸!~錛屾暣涓嚱鏁拌繑鍥?銆傚鏋滀竴鐩村洖閫鍒版渶灝?"11")榪樻槸鍖歸厤涓嶄簡錛岃鏄?number鏄竴涓礌鏁般?br />
璇村埌榪欓噷錛屼綔鑰呯殑宸ф濈‘瀹炲煎緱浣╂湇錛岃櫧鐒剁湅絀夸簡浼氳寰椾笉榪囧姝ゃ傜劧鍚庤繕鏈変袱涓棶棰樻病鏈夎В鍐籌紝灝辨槸?>鍜?:鍒板簳鏄共浠涔堝悆鐨勶紵?>鐨勬剰鎬濇槸No backtracing,?:鍒欐槸Cluster but no grouping銆?>鍙互涓嶈錛屼笉褰卞搷緇撴灉(鍙兘瀵規晥鐜囨湁浜涘獎鍝嶏紝浣嗙浉淇℃病鏈変漢浼氭嬁榪欑鍔炴硶鍘誨垽瀹氱礌鎬х殑)錛屼絾?:灝變笉鍙己灝戜簡銆?/font>
]]>