要求:對于各定的信源計算其中各個字母以及空格出現(xiàn)的次數(shù),概率,信源熵!
首先在大腦里構(gòu)思編輯過程要用到哪些具體的函數(shù)功能等等,然后自己現(xiàn)在紙上畫一畫,好的根據(jù)求信源熵的公式
E(X)=-p(xi)log2 p(xi)(i=1,2,..n) 可以得到如下編碼過程!
//所給定字母
$String = 'qwertyuioplkjhgfdsazxcvbnmdgjdoqoiAznicguyfgvfpqopq llxkzmjscnjd nvhfhuwrty';
//需要匹配的26個英文字母
$ZhiMu = 'abcdefghijklmnopqrstuvwxyz';
//匹配字母
preg_match_all("/[a-zA-Z]{1}/",$String,$arrAl);
$p=0;
$xin=0;
substr_count($String," "); //空格個數(shù)
for( $i = 0; $i < strlen( $ZhiMu ); $i++ ) { //循環(huán)遍歷26個字母, 也就是一個一個字母比對
$num=0;
$s = $ZhiMu{$i}; //得到要比對的字母
$b = 0; //初始化字母次數(shù)為0
$gai=0; //初始化概率為0
$res=0;
count($arrAl[0]);
for( $j = 0; $j < strlen( $String ); $j++ ) { //循環(huán)遍歷要比對的字符串, 也就是從頭開始一個一個比對
if ( $s == $String{$j} ) { //如果兩個字母相同
$b += 1; //次數(shù)加上1
}
}
$num=count($arrAl[0])+substr_count($String," ");
$gai=$b/$num; //各個字母出現(xiàn)的概率
//輸出結(jié)果
echo '',$ZhiMu{$i}, '出現(xiàn)的次數(shù)是:', $b,'   概率:',$res=substr($gai, 0,6);
}
$bla=0;
echo '','   空格的個數(shù):',substr_count($String," "),'   概率:',substr(substr_count($String," ")/$num, 0,6);
$bla=substr(substr_count($String," ")/$num, 0,6);
$p=-(($gai)*(log($gai)/log(2))+log($bla)/log(2));
echo '',"字母跟空格個數(shù)之和:",$num,"
",'信源熵:',"E(X)=",$xin=substr($p, 0,6);
編程圖片:
結(jié)果:
以上是一個簡單的程序,大家也可以加入數(shù)據(jù)庫,對標點符號,漢字,特殊字符進行計算,也可以設(shè)置成表單輸入!
我的演示就到這里,有什么不足還請大家提出!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。