1.Describe a Θ(n lg n)-time algorithm that, given a set S of n integers and another integer x, determines whether or not there exist two elements in S whose sum is exactly x. (Implement exercise 2.3-7.) #include<stdio.h> #include<stdlib.h> void merge(int arr[],int low,int mid,int high){ int i,k; int *tmp=(int*)malloc((high-low+1)*sizeof(int)); int left_low=low; int left_high=mid; int right_low=mid+1; int right_high=high; for(k=0;left_low<=left_high&&right_low<=right_high;k++) { if(arr[left_low]<=arr[right_low]){ tmp[k]=arr[left_low++]; } else{ tmp[k]=arr[right_low++]; } } if(left_low<=left_high){ for(i=left_low;i<=left_high;i++){ tmp[k++]=arr[i]; } } if(right_low<=right_high){ for(i=right_low;i<=right_high;i++) tmp[k++]=arr[i]; } for(i=0;i<high-low+1;i++) arr[low+i]=tmp[i]; } void merge_sort(int a[],int p,int r){ int q; if(p<r){ q=(p+r)/2; merge_sort(a,p,q); merge_sort(a,q+1,r); merge(a,p,q,r); } } int main(){ int a[8]={3,5,8,6,4,1,1}; int i,j; int x=10; merge_sort(a,0,6); printf("after Merging-Sort:\n"); for(i=0;i<7;i++){ printf("%d",a[i]); } printf("\n"); i=0;j=6; do{ if(a[i]+a[j]==x){ printf("exist"); break; } if(a[i]+a[j]>x) j--; if(a[i]+a[j]<x) i++; }while(i<=j); if(i>j) printf("not exist"); system("pause"); return 0; }
上傳時間: 2017-04-01
上傳用戶:糖兒水嘻嘻
題目:古典問題:有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子長到第三個月后每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數(shù)為多少? //這是一個菲波拉契數(shù)列問題 public class lianxi01 { public static void main(String[] args) { System.out.println("第1個月的兔子對數(shù): 1"); System.out.println("第2個月的兔子對數(shù): 1"); int f1 = 1, f2 = 1, f, M=24; for(int i=3; i<=M; i++) { f = f2; f2 = f1 + f2; f1 = f; System.out.println("第" + i +"個月的兔子對數(shù): "+f2); } } } 【程序2】 題目:判斷101-200之間有多少個素數(shù),并輸出所有素數(shù)。 程序分析:判斷素數(shù)的方法:用一個數(shù)分別去除2到sqrt(這個數(shù)),如果能被整除, 則表明此數(shù)不是素數(shù),反之是素數(shù)。 public class lianxi02 { public static void main(String[] args) { int count = 0; for(int i=101; i<200; i+=2) { boolean b = false; for(int j=2; j<=Math.sqrt(i); j++) { if(i % j == 0) { b = false; break; } else { b = true; } } if(b == true) {count ++;System.out.println(i );} } System.out.println( "素數(shù)個數(shù)是: " + count); } } 【程序3】 題目:打印出所有的 "水仙花數(shù) ",所謂 "水仙花數(shù) "是指一個三位數(shù),其各位數(shù)字立方和等于該數(shù)本身。例如:153是一個 "水仙花數(shù) ",因為153=1的三次方+5的三次方+3的三次方。 public class lianxi03 { public static void main(String[] args) { int b1, b2, b3;
上傳時間: 2017-12-24
上傳用戶:Ariza
function [alpha,N,U]=youxianchafen2(r1,r2,up,under,num,deta) %[alpha,N,U]=youxianchafen2(a,r1,r2,up,under,num,deta) %該函數(shù)用有限差分法求解有兩種介質(zhì)的正方形區(qū)域的二維拉普拉斯方程的數(shù)值解 %函數(shù)返回迭代因子、迭代次數(shù)以及迭代完成后所求區(qū)域內(nèi)網(wǎng)格節(jié)點處的值 %a為正方形求解區(qū)域的邊長 %r1,r2分別表示兩種介質(zhì)的電導(dǎo)率 %up,under分別為上下邊界值 %num表示將區(qū)域每邊的網(wǎng)格剖分個數(shù) %deta為迭代過程中所允許的相對誤差限 n=num+1; %每邊節(jié)點數(shù) U(n,n)=0; %節(jié)點處數(shù)值矩陣 N=0; %迭代次數(shù)初值 alpha=2/(1+sin(pi/num));%超松弛迭代因子 k=r1/r2; %兩介質(zhì)電導(dǎo)率之比 U(1,1:n)=up; %求解區(qū)域上邊界第一類邊界條件 U(n,1:n)=under; %求解區(qū)域下邊界第一類邊界條件 U(2:num,1)=0;U(2:num,n)=0; for i=2:num U(i,2:num)=up-(up-under)/num*(i-1);%采用線性賦值對上下邊界之間的節(jié)點賦迭代初值 end G=1; while G>0 %迭代條件:不滿足相對誤差限要求的節(jié)點數(shù)目G不為零 Un=U; %完成第n次迭代后所有節(jié)點處的值 G=0; %每完成一次迭代將不滿足相對誤差限要求的節(jié)點數(shù)目歸零 for j=1:n for i=2:num U1=U(i,j); %第n次迭代時網(wǎng)格節(jié)點處的值 if j==1 %第n+1次迭代左邊界第二類邊界條件 U(i,j)=1/4*(2*U(i,j+1)+U(i-1,j)+U(i+1,j)); end if (j>1)&&(j U2=1/4*(U(i,j+1)+ U(i-1,j)+ U(i,j-1)+ U(i+1,j)); U(i,j)=U1+alpha*(U2-U1); %引入超松弛迭代因子后的網(wǎng)格節(jié)點處的值 end if i==n+1-j %第n+1次迭代兩介質(zhì)分界面(與網(wǎng)格對角線重合)第二類邊界條件 U(i,j)=1/4*(2/(1+k)*(U(i,j+1)+U(i+1,j))+2*k/(1+k)*(U(i-1,j)+U(i,j-1))); end if j==n %第n+1次迭代右邊界第二類邊界條件 U(i,n)=1/4*(2*U(i,j-1)+U(i-1,j)+U(i+1,j)); end end end N=N+1 %顯示迭代次數(shù) Un1=U; %完成第n+1次迭代后所有節(jié)點處的值 err=abs((Un1-Un)./Un1);%第n+1次迭代與第n次迭代所有節(jié)點值的相對誤差 err(1,1:n)=0; %上邊界節(jié)點相對誤差置零 err(n,1:n)=0; %下邊界節(jié)點相對誤差置零 G=sum(sum(err>deta))%顯示每次迭代后不滿足相對誤差限要求的節(jié)點數(shù)目G end
標(biāo)簽: 有限差分
上傳時間: 2018-07-13
上傳用戶:Kemin
反激式開關(guān)電源變壓器設(shè)計的詳細(xì)步驟85W反激變壓器設(shè)計的詳細(xì)步驟 1. 確定電源規(guī)格. 1).輸入電壓范圍Vin=90—265Vac; 2).輸出電壓/負(fù)載電流:Vout1=42V/2A, Pout=84W 3).轉(zhuǎn)換的效率=0.80 Pin=84/0.8=105W 2. 工作頻率,匝比, 最低輸入電壓和最大占空比確定. Vmos*0.8>Vinmax+n(Vo+Vf)600*0.8>373+n(42+1)得n<2.5Vd*0.8>Vinmax/n+Vo400*0.8>373/n+42得n>1.34 所以n取1.6最低輸入電壓Vinmin=√[(Vacmin√2)* (Vacmin√2)-2Pin(T/2-tc)/Cin=(90√2*90√2-2*105*(20/2-3)/0.00015=80V取:工作頻率fosc=60KHz, 最大占空比Dmax=n(Vo+Vf)/[n(Vo+Vf)+Vinmin]= 1.6(42+1)/[1.6(42+1)+80]=0.45 Ton(max)=1/f*Dmax=0.45/60000=7.5us 3. 變壓器初級峰值電流的計算. Iin-avg=1/3Pin/Vinmin=1/3*105/80=0.4AΔIp1=2Iin-avg/D=2*0.4/0.45=1.78AIpk1=Pout/?/Vinmin*D+ΔIp1=84/0.8/80/0.45=2.79A 4. 變壓器初級電感量的計算. 由式子Vdc=Lp*dip/dt,得: Lp= Vinmin*Ton(max)/ΔIp1 =80*0.0000075/1.78 =337uH 取Lp=337 uH 5.變壓器鐵芯的選擇. 根據(jù)式子Aw*Ae=Pt*1000000/[2*ko*kc*fosc*Bm*j*?],其中: Pt(標(biāo)稱輸出功率)= Pout=84W Ko(窗口的銅填充系數(shù))=0.4 Kc(磁芯填充系數(shù))=1(對于鐵氧體), 變壓器磁通密度Bm=1500Gs j(電流密度): j=4A/mm2;Aw*Ae=84*1000000/[2*0.4*1*60*103*1500Gs*4*0.80]=0.7cm4 考慮到繞線空間,選擇窗口面積大的磁芯,查表: ER40/45鐵氧體磁芯的有效截面積Ae=1.51cm2 ER40/45的功率容量乘積為 Ap = 3.7cm4 >0.7cm4 故選擇ER40/45鐵氧體磁芯. 6.變壓器初級匝數(shù) 1).由Np=Vinmin*Ton/[Ae*Bm],得: Np=80*7.5*10n-6/[1.52*10n-4*0.15] =26.31 取 Np =27T 7. 變壓器次級匝數(shù)的計算. Ns1(42v)=Np/n=27/1.6=16.875 取Ns1 = 17T Ns2(15v)=(15+1)* Ns1/(42+1)=6.3T 取Ns2 = 7T
標(biāo)簽: 開關(guān)電源 變壓器
上傳時間: 2022-04-15
上傳用戶:
使用C#程式語言開發(fā),並執(zhí)行於.NET Framework下;是研習(xí)「蟻拓尋優(yōu)法」不可或缺的軟體工具。系統(tǒng)使用ACO (Ant Colony Optimization)演算公式模擬螞蟻的覓食行徑抉擇。使用者可以設(shè)定費洛蒙和食物氣味強度等相關(guān)參數(shù)以及動態(tài)設(shè)定障礙物的位置和形狀,研習(xí)螞蟻覓食的最短路徑形成過程。研習(xí)各種參數(shù)設(shè)定對螞蟻覓食行為的影響,了解費落蒙機制對蟻拓尋優(yōu)化法的影響。本系統(tǒng)可支援柔性計算教學(xué),研習(xí)蟻拓優(yōu)化法中人工螞蟻的隨機搜尋模式和啟發(fā)式法則設(shè)計原理。
標(biāo)簽: 程式
上傳時間: 2013-12-24
上傳用戶:anng
滙編語言的一個應(yīng)用實例﹐該程序的功能為統(tǒng)計學(xué)生信息的系統(tǒng)。
上傳時間: 2014-01-19
上傳用戶:wlcaption
一個很好用的 lcd 時鐘程序 C語言 #include<reg51.h> #include<stdio.h> //定義計時器0 的重裝值 #define RELOAD_HIGH 0x3C #define RELOAD_LOW 0xD2 //定義按鍵彈跳時間 #define DB_VAL //定義設(shè)置模式的最大時間間隔 #define TIMEOUT 200 //定義游標(biāo)位置常數(shù) #define HOME 0 #define HOUR 1 #define MIN 2 #define SEC 3
標(biāo)簽: include define RELOAD stdio
上傳時間: 2014-12-19
上傳用戶:zukfu
鄰接矩陣類的根是A d j a c e n c y W D i g r a p h,因此從這個類開始。程序1 2 - 1給出了類的描述。程 序中,先用程序1 - 1 3中函數(shù)Make2DArray 為二組數(shù)組a 分配空間,然后對數(shù)組a 初始化,以描述 一個n 頂點、沒有邊的圖的鄰接矩陣,其復(fù)雜性為( n2 )。該代碼沒有捕獲可能由M a k e 2 D A r r a y 引發(fā)的異常。在析構(gòu)函數(shù)中調(diào)用了程序1 - 1 4中的二維數(shù)組釋放函數(shù)D e l e t e 2 D
標(biāo)簽: 矩陣
上傳時間: 2013-12-21
上傳用戶:lanjisu111
類神經(jīng)感知機源碼,做為訓(xùn)練一些資料,輸入所要學(xué)習(xí)的資料以便作為學(xué)習(xí),透過計算來學(xué)習(xí)完成
標(biāo)簽:
上傳時間: 2016-04-02
上傳用戶:lizhizheng88
使用硬體描述語言HDL 設(shè)計硬體電路,臺灣人寫的PPT講義,非常不錯。VHDL硬件設(shè)計入門學(xué)習(xí)。VHDL基本語法架構(gòu),VHDL的零件庫(Library)及包裝(Package)等內(nèi)容。
標(biāo)簽: HDL
上傳時間: 2014-01-22
上傳用戶:cxl274287265
蟲蟲下載站版權(quán)所有 京ICP備2021023401號-1