信息與編碼實驗一_第1頁
信息與編碼實驗一_第2頁
信息與編碼實驗一_第3頁
信息與編碼實驗一_第4頁
信息與編碼實驗一_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

桂林電子科技大學(xué)數(shù)學(xué)與計算科學(xué)學(xué)院實驗報告院(系)數(shù)學(xué)與計算科學(xué)學(xué)號1200710218姓名韓尚莉成績課程名稱信息與編碼實驗實驗項目名稱實驗一信息熵的計算指導(dǎo)教師實驗室:06406實驗日期:2015年12月12日一,實驗?zāi)康膶⒁淮蠖斡⑽奈恼伦鳛橐y(tǒng)計的樣本文件對樣本文件進(jìn)行一維概率統(tǒng)計,并計算出信源熵及冗余度對樣本文件進(jìn)行二維概率統(tǒng)計,并計算出信源熵及冗余度二,實驗原理在進(jìn)行統(tǒng)計時,首先要在程序中打開文件,然后對文件中的字符讀入程序中,進(jìn)行統(tǒng)計。而在二維統(tǒng)計時,尤其要求對文件的指針操作要熟悉。如讀入“newspaper”時,應(yīng)該依次讀入“neewwssppaappeer”,而如果使用fgetc()等命令讀文件時,讀入的是“newspape”為了依次讀入“服ewwssppaappeer”,就要求在每次調(diào)入fgetc()等命令后,再將文件指針往后退一步,即要求學(xué)生能熟練使用fseek()命令進(jìn)行指針定位操作。三,使用儀器,材料計算機(jī),VisualC++6.0四,實驗內(nèi)容與步驟(過程及結(jié)果截圖)首先,下載或者建立一個含有英文字母的txt文檔,接下來,編寫程序統(tǒng)計字符以及計算熵。一維:#include<stdio.h>#include<string.h>#include<math.h>#define_FILEPATH"F:\\xinhao與編碼\\0.txt"#define_ALAPHA_NUMBER((int)('z'-'a'+1))voidPrintStati(intarr[],intsize);intStati(constchar*filePath,intarr[]);floatEntropCompute(intarr[],intsum,intarrSize);intmain(){intarr[_ALAPHA_NUMBER*2]={0};intsampleSize=0;sampleSize=Stati(_FILEPATH,arr);PrintStati(arr,_ALAPHA_NUMBER*2);printf("\n");printf("samplesize:%d\n",sampleSize);printf("entrop:%f\n",EntropCompute(arr,sampleSize,_ALAPHA_NUMBER*2));return0;}voidPrintStati(intarr[],intsize){inti=0;while(i<size){if(i<_ALAPHA_NUMBER){printf("%c:%d",i+'a',arr[i]);}else{printf("%c:%d",i+'A'-_ALAPHA_NUMBER,arr[i]);}i++;}}intStati(constchar*filePath,intarr[]){FILE*pFile=NULL;charc;intsum=0;pFile二fopen(filePath,"rb");if(pFile==NULL){printf("failtoopenfile");return0;}while(1){c=fgetc(pFile);if(c==EOF){break;}if(c>='a'&&c<='z'){arr[c-'a']++;sum++;}elseif(c>='A'&&c<='z'){arr[_ALAPHA_NUMBER+c-'A']++;sum++;}}fclose(pFile);returnsum;}floatEntropCompute(intarr[],intsum,intarrSize){floatentrop=0.0F;inti=0;floatprobability=0;while(i<arrSize){if(arr[i]!=0){probability=(arr[i]*1.0F)/sum;entrop+=(-probability*(log(probability)/log(2)));}i++;}returnentrop;}運(yùn)彳丁結(jié)果:S3F:\xinha曰與編碼命名Lexe—OXl:7206b:1818c:2709d:3191e:12962f:1889g:1914h:5286i:7222j:61k:5541:5861Im:2665n:7108o:8408p:2169q:43r:6339s:6658t:10577u:3103v:1223w:1945x:I.33y:2687z:2A:155B:69C:89D:88E:60F:92G:2H:201:309J:66K:2L:1M:79N10:43P:2Q:0R:2S:17T:191U:1V:1W:28X:0Y:2Z:0I;amplesize:105056sntrop:4.240259'rocessexitedwithreturnvalue0'ressanykeytocontinue...二維:#include<stdio.h>#include<math.h>#include<stdlib.h>#defineNULL0intcharge(charc){intn;if(c>=65&&c<=90)c=c+32;if(c>+97&&c<=122){n=c-97;returnn;}elsereturn-1;}intmain(){intcount[26][26]={0};charzifu1,zifu2;inti,n,m,j;intsum=0;floatq,sum1=0;FILE*fp;

if((fp=fopen("F:\\xinhao與編碼\\0.txt","rb"))二二NULL){printf("can'topenfile!\n");exit(0);}while(!feof(fp)){zifu1=fgetc(fp);n=charge(zifu1);if(n!=-1){zifu2=fgetc(fp);m=charge(zifu2);if(m!=-1){count[n][m]++;fseek(fp,-1,1);}}}fclose(fp);for(i=0;i<26;i++)for(j=0;j<26;j++)sum=sum+count[i][j];printf("thenumberofallthecodeis%d\n",sum);q=(float)sum;for(i=0;i<26;i++)for(j=0;j<26;j++){if(j%3==0)printf("\n");printf("%c%c,%4d,%6.5f%%",i+97,j+97,count[i][j],count[i][j]*100/q);}printf("\n");for(i=0;i<26;i++)for(j=0;j<26;j++)if(count[i][j]));sum1=sum1+(float)((count[i][j]/q)*log10(1/(double)(count[i][j]/q))/log10((double)(2))printf("\n信息熵為:H(x)=%f\n",sum1);}運(yùn)彳丁結(jié)果:);1>1Z\shang.exeheni_unbero±alltJ^ieoccteis-門ri.rinririri%0.00000%n.nnnnn%u.uuucju%o.00000%u.uuuuu%o.00000%Ij.UUULiij%0.00000%n.nnnnn%o.uuuoo%0.00000%u.UUULJLJ%0.00000%Ij.OOuijij%0.00000%n.nnnnn%u.n.onnnn%U.UUULJLJ%o.00000%ij.UUULuj%0.00000%I-n-r-I--rn-T□n-.■!■-rn-T_Jr-.-I--r-I--r□I-behkn<l七-V工behkn蟲t.wubcfhk11aaaaabbbbbbbbbL:c:1---'_■-:-I-n-r-I--rn-T-Jn-Jr-rn-T_Jr-I-I--r-I--r-Jnnonoouo-M-on^.5UO.M-4noo4GSO'J6U4'JJ<L30.□□□□□%0.00000%n.nnnnn%□.uuuuu%0.00000?ou.uuuuu%o.00000%a.oooaawo.00000%n.nnnnnw□.AlLJlb%0.00000%u.uuuuu%0.00000%ij.'joOCuj%0.00033%n.nnnnn%□.uuuuu%口一onnno%U.bya<Lb%0.4SG37%0.01129%0.00000%EF:斶碼實驗W幅hang’ex巳xp,0,xs,0,Sxy,0,ya,Syd,Syg,Syj,0,ym,59,VP,12,ys,100,yv,0,yy,Sza,0,zd,0,格Sn0,部結(jié)結(jié)視本ES,本的字入0.00000%0.00000%0.00000%0.00000%0.00000%0.00000%0.00000%0.00000%0.08328%0.01694%0.14115%0.00000%0.00000%0.00000%0.00000%0.00000%0.00000%0.00000%RbK)o%驗,將含有中,進(jìn)行統(tǒng)0.00000%xq,0,xt,17,xw,0,xz,0,yb,0,ye,97,yhn0,yk,0,皿0,雙0,yt,1,yw,0,V瓦0,zb,0,ze,1,zh,0,zk,0,zn,0,段英I段英B^實驗對zz,0,0.00000%0.02400%0.00000%0.00000%0.00000%0.13691%0.00000%0.00000%0.00000%0.00000%0.00141%0.00000%0.00000%0.00000%0.00141%0.00000%0.00000%0.00000%0.00000%rn作為要統(tǒng)進(jìn)行一維0.00000%ri.□□□□□%0.00000%n.nnnno%u.uuuuu%0.00000%u.uuuuu%0.00000%u.Ijijuuij%n.nnnnn%u.ouuuo%0.44744%u.0.273S3%0.ij'jOOu%0.45440%n.nnnnn

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論