锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
棣栧厛錛屽緢瀹規槗鎯沖埌鐨勫氨鏄紝姹?/span>0鐨勪釜鏁幫紝灝辨槸姹?/span>5鐨勪釜鏁幫紙濡傛灉榪欎釜浣犻兘鎯充笉鏄庣櫧鐨勮瘽錛岄偅灝便傘傘傚啀濂藉ソ鎯蟲兂鍚э紝鍛靛懙錛夛紱
鎺ヤ笅鏉ワ紝濡備綍姹?/span>5鐨勪釜鏁板憿錛熷鏋滈亶鍘嗕竴閬嶇殑璇濓紝閭f樉鐒舵槸澶參浜嗭紒鍥犱負榪欑璁$畻棰樺お鏈夎寰嬩簡錛佹兂浜嗗ソ涔咃紝緇堜簬鎯沖嚭鏉ヤ簡錛?/span>
Result = 0; // 鏈鍚庣殑緇撴灉
while ( N >= 5 )
{
N /= 5;
Result += N;
}
// 緇撴潫浜嗐?/span>
娌¢敊錛屽氨鏄繖涔堢畝鍗曪紒涓嬮潰綆鍗曡璇翠負浠涔堣繖鏍峰瓙鍋氭槸瀵圭殑錛堝伓灝忚瘯浜嗕竴涓嬶紝娌¢棶棰橈紝鍛靛懙錛夛細
絎竴嬈¢櫎浠?/span>5琛ㄧず5鐨勫嶆暟鐨勪釜鏁幫紝
絎簩嬈¢櫎浠?/span>5琛ㄧず5鐨勫鉤鏂圭殑鍊嶆暟鐨勪釜鏁幫紝錛堟樉鐒訛紝5鐨勫鉤鏂規殫鍚簡涓や釜0錛?/span>
銆傘傘備緷姝ょ被鎺?/span>
鏈鍚庡綋N<5浜嗭紝緇撴潫銆?/span>
灝忓皬鐨勯獙璇佷竴涓嬶細
26錛?/span>
26/5 = 5錛?/span> 5/5 = 1錛岄偅涔堟渶鍚?/span>0鐨勪釜鏁板氨鏄?/span>6浜嗐傜敤Google綆椾簡涓涓嬶紝緇撴灉G澶у彅鐩存帴鐢ㄦ湁鏁堟暟瀛楄〃紺轟簡錛?/span>@$%$%@$%銆傘傘備笉榪囧簲璇ユ槸娌¢敊浜嗐傛仼銆?/span>
Sigh錛岀煡閬撶粨鏋滃悗鎵嶇煡閬撳師鏉ヨ繖涔堢畝鍗曠殑闃匡紝鍋跺湡浜嗐?/span>
unsigned long int next = 1;
unsigned int rand(void)
{
next = next * 1103515245 + 12345;
return (unsigned int)(next/65536) % 32768;
}
void srand(unsigned int seed)
{
next = seed;
}
int main()
{
srand(GetTickCount());
for(int i=0; i<10; i++)
{
for(int j=0; j<10; j++)
printf("%d ", rand());
printf("\n");
}
return 0;
}
闅忔満鏁?/span>
#include <stdlib.h>
Srand( GetTickCount() );
Rand();
瀹冩槸濡備綍瀹炵幇瑙e喅姝婚攣闂鐨勫憿錛?/span>
浠婂ぉ紼嶅井瀛︿範浜嗕竴涓嬶紝灝辯◢寰涓涓嬪叾鍘熺悊鍚э紝鍏嶅緱蹇樹簡銆傚叾瀹炲師鐞嗗緢綆鍗曪紒
聽聽聽聽 Banker algorithm 鏈閲嶈鐨勪竴鐐規槸錛氫繚璇佹搷浣滅郴緇熺殑瀹夊叏鐘舵侊紒榪欎篃鏄搷浣滅郴緇熷垽鏂槸鍚﹀垎閰嶇粰涓涓繘紼嬭祫婧愮殑鏍囧噯錛侀偅浠涔堟槸瀹夊叏鐘舵侊紵涓句釜灝忎緥瀛愶紝榪涚▼ P 闇瑕佺敵璇?/span> 8 涓祫婧愶紙鍋囪閮芥槸涓鏍風殑錛夛紝宸茬粡鐢寵浜?/span> 5 涓祫婧愶紝榪樺樊 3 涓祫婧愩傝嫢榪欎釜鏃跺欐搷浣滅郴緇熻繕鍓╀笅 2 涓祫婧愩傚緢鏄劇劧錛岃繖涓椂鍊欐搷浣滅郴緇熸棤璁哄浣曢兘涓嶈兘鍐嶅垎閰嶈祫婧愮粰榪涚▼ P 浜嗭紝鍥犱負鍗充嬌鍏ㄩ儴緇欎簡浠栦篃涓嶅錛岃繕寰堝彲鑳戒細閫犳垚姝婚攣銆傝嫢榪欎釜鏃跺欐搷浣滅郴緇熻繕鏈?/span> 3 涓祫婧愶紝鏃犺 P 榪欎竴嬈$敵璇峰嚑涓祫婧愶紝鎿嶄綔緋葷粺閮藉彲浠ユ弧瓚充粬錛屽洜涓烘搷浣滅郴緇熷彲浠ヤ繚璇?/span> P 涓嶆閿侊紝鍙浠栦笉鎶婂墿浣欑殑璧勬簮鍒嗛厤緇欏埆浜猴紝榪涚▼ P 灝變竴瀹氳兘欏哄埄瀹屾垚浠誨姟銆?/span>
聽 涓轟粈涔堥摱琛屽綆楁硶鏄彲琛岀殑鍛紵榪欓噷闇瑕佷弗鏍肩殑璇佹槑涓涓嬨傛垜榪欓噷灝辯畝鍗曞緱璇翠竴涓嬪惂銆備笉綆′換浣曟椂鍊欙紝鎿嶄綔緋葷粺鍒嗛厤璧勬簮鐨勬椂鍊欓兘鍙互淇濊瘉褰撳墠鎺ュ彈璧勬簮鐨勮繘紼嬩笉浼氶櫡鍏ユ閿侊紝鍥犱負鎿嶄綔緋葷粺鎬繪槸鍙互婊¤凍璇ヨ繘紼嬮渶瑕佺殑璧勬簮鐨勩?/span>
鍋囪鏈?/span> n 涓繘紼?/span> {p1, p2, p3, 鈥?pn} 錛屾渶鍚庝竴涓垎閰嶅埌璧勬簮鐨勬槸 pi 錛?/span> pi 榪橀渶瑕?/span> mi 涓祫婧愶紝鍋囪姝ゆ椂鎿嶄綔緋葷粺榪樻湁 m 涓祫婧愬墿浣欍傞偅涔堝緢鏄劇劧 m>=mi 錛佽屼笖濡傛灉涔嬪悗鎿嶄綔緋葷粺鍙堟妸璧勬簮鍒嗛厤緇欏叾浠栬繘紼嬩簡錛屽亣璁炬槸 pj 錛?/span> pj 榪橀渶瑕?/span> mj 涓祫婧愶紝鍚岀悊鍙煡 m>=mj 錛佷篃灝辨槸璇村湪鎵鏈夌殑榪涚▼涓紝榪橀渶瑕佺殑璧勬簮鏁版繪槸鏈夊皬浜?/span> m 鐨勶紒榪欐牱灝卞彲浠ヤ繚璇佽祫婧愭暟姘歌繙涓嶄細涓?/span> 0 錛屽嵆浣垮彲鑳芥殏鏃舵т負 0 銆傚彟澶栵紝榪橀渶瑕佷繚璇佽祫婧愭暟涓嶄細鍑忓皯錛佽屼笖錛屾墍鏈夊凡緇忓垎閰嶅埌璧勬簮鐨勮繘紼嬫繪湁涓澶╀細褰掕繕瀹冩墍鎷ユ湁鐨勮祫婧愶紒鏍規嵁鎿嶄綔緋葷粺鍐嶅垎閰嶇殑鏃跺欑殑鐘舵佸嵆鍙垽瀹氥?/span>
鑳¤鍏亾浜嗕竴閫氥傘傘備笉鐭ユ湁娌℃湁鎶婇棶棰樿鏄庣櫧浜嗭紝榪樻槸瓚婅瓚婄硦娑傦紵
GL & HF
template <class T>
void ShellSort(T a[], int N)
{
聽for (int gap = N/2; gap; gap = gap/2)
聽{
聽聽for (int i = gap; i < N; i++)
聽聽{
聽聽聽T temp = a[i];
聽聽聽int j;
聽聽聽for (j = i; j >= gap && temp < a[j - gap]; j -= gap)
聽聽聽{
聽聽聽聽a[j] = a[j - gap];
聽聽聽}
聽聽聽a[j] = temp;
聽聽}
聽}
}
template <class T>
void output(T a[], int N)
{
聽for(int i=0; i<N; i++)
聽{
聽聽cout << i << ":" << a[i] << endl;
聽}
}
int main()
{
聽int a[] = {3,3,1,0,2,2,1,9,8,3,1,1,2,6,1,2,7,8};
聽output(a, sizeof(a)/sizeof(int));
聽ShellSort(a, sizeof(a)/sizeof(int));
聽output(a, sizeof(a)/sizeof(int));
聽
聽//end:
聽int end;
聽cin >> end;
聽return 0;
}