91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 10KB
    文件類型: .cpp
    金幣: 1
    下載: 1 次
    發布日期: 2021-06-13
  • 語言: C/C++
  • 標簽: 編碼??譯碼??C語言??

資源簡介

漢明碼的編碼譯碼的C語言實現程序.此程序是基于C語言對線性分組碼中的漢明碼的程序實現

資源截圖

代碼片段和文件信息

#?include?“stdio.h“
#?include?“time.h“
#?include?“stdlib.h“
#?define?A?4000
#?define?M?4
#?define?N?7

/*****************************************************************************************************************/
//?該函數是初始化函數
//?作用:隨機產生信源,并將信源存放到數組b中,初始化數組e,使它的初值是0
//?入口參數:bb(信源)ee(陪首集)
//?出口參數:k1(代表信源個數)
/*****************************************************************************************************************/

int?init(int?bb[A/M][M]int?ee[A/M][N])???????????????????
{
int?i=0jk1;
printf(“\n?隨機產生%d個二元(%d%d)漢明碼的信源:“A/4NM);?
????srand(?(unsigned)time(?NULL?)?);?
????for(?i?=?0;?i????????for(?j?=?0;?j???????????{?
???????????bb[i][j]=rand()%2;
??????????}
????for(i=0;i ???for(j=0;j ee[i][j]=0;
k1=A/4;
return?k1;
}

/*****************************************************************************************************************/
//?該函數是輸出函數
//?作用:輸出生成矩陣
//?入口參數:g(生成矩陣)
//?出口參數:沒有
/*****************************************************************************************************************/

void?print1(int?g[M][N])???????????
{
int?ij;
printf(“\n?生成矩陣是:\n?????????????“);
for(i=0;i {
for(j=0;j printf(“%d?“g[i][j]);
printf(“\n?????????????“);
}
}

/*****************************************************************************************************************/
//?該函數是輸出函數
//?輸出校驗矩陣
//?入口參數:h(校驗矩陣)
//?出口參數:沒有
/*****************************************************************************************************************/

void?print2(int?h[N-M][N])???????
{
int?ij;
printf(“\n?校驗矩陣是:\n?????????????“);
for(i=0;i {
for(j=0;j printf(“%d?“h[i][j]);
printf(“\n?????????????“);
}
}

/*****************************************************************************************************************/
//?該函數是求碼字函數
//?作用:求出要傳輸的的碼字
//?入口參數:n(信源個數)gg(生成矩陣)cc(信源生成的碼字)bb(信源)
//?出口參數:沒有
/*****************************************************************************************************************/

void?SYard(int?nint?gg[M][N]int?cc[M][N]int?bb[A/M][M])???
{
int?ijkt;
for(i=0;i {
for(j=0;j {
t=0;
for(k=0;k t+=bb[i][k]*gg[k][j];
cc[i][j]=t%2;?????//?%2是為了讓它們之和小于2
}
}
}

/*****************************************************************************************************************/
//?該函數是模擬信道函數
//?作用:改變要傳輸的碼字,
//??咐:碼字經過該信道后,不產生錯誤的概率是70%產生一位錯誤的概率是21%,兩位錯誤的概率是6%,三位錯誤的概率是3%
//?入口參數:n(信源個數)rr(接收到的碼字)cc(發送的碼字)
//?出口參數:q(產生一位隨機錯誤的碼字個數)
/*****************************************************************************************************************/

int?Channel(int?nint?rr[A/M][N]int?cc[A/M][N])??
{
int?aijka1a2a3q=0;??//?k代表經過信道后碼字會錯幾位a1,a2,a3表示具體的錯誤位置
srand(?(unsigned)time(?NULL?)?);
for(i=0;i {???
a=r

評論

共有 條評論