用PHP简单计算信源熵

要求:对于各定的信源计算其中各个字母以及空格出现的次数,概率,信源熵!

        首先在大脑里构思编辑过程要用到哪些具体的函数功能等等,然后自己现在纸上画一画,好的根据求信源熵的公式
E(X)=-p(xi)log2 p(xi)(i=1,2,..n) 可以得到如下编码过程!
        <?php
//所给定字母
$String = 'qwertyuioplkjhgfdsazxcvbnmdgjdoqoiAznicguyfgvfpqopq   llxkzmjscnjd nvhfhuwrty';
//需要匹配的26个英文字母 
$ZhiMu  = 'abcdefghijklmnopqrstuvwxyz';
//匹配字母
preg_match_all("/[a-zA-Z]{1}/",$String,$arrAl);
$p=0;
$xin=0; 
substr_count($String," ");                            //空格个数
for( $i = 0; $i < strlen( $ZhiMu ); $i++ ) {          //循环遍历26个字母, 也就是一个一个字母比对
     $num=0;
    $s = $ZhiMu{$i};                                  //得到要比对的字母
    $b = 0;                                           //初始化字母次数为0
    $gai=0;                                           //初始化概率为0
    $res=0;
    count($arrAl[0]);
    for( $j = 0; $j < strlen( $String ); $j++ ) {     //循环遍历要比对的字符串, 也就是从头开始一个一个比对
        if ( $s == $String{$j} ) {                    //如果两个字母相同
            $b += 1;                                  //次数加上1
        }
    }
    $num=count($arrAl[0])+substr_count($String," ");
    $gai=$b/$num;                                     //各个字母出现的概率
    //输出结果
    echo '</br>',$ZhiMu{$i}, '出现的次数是:', $b,'&nbsp&nbsp&nbsp概率:',$res=substr($gai, 0,6);  
}
$bla=0;
echo '</br>','&nbsp&nbsp&nbsp空格的个数:',substr_count($String," "),'&nbsp&nbsp&nbsp概率:',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 '</br>',"字母跟空格个数之和:",$num,"<br/>",'信源熵:',"E(X)=",$xin=substr($p, 0,6);
编程图片
    用PHP简单计算信源熵

企业建站必须是能够以充分展现企业形象为主要目的,是企业文化与产品对外扩展宣传的重要窗口,一个合格的网站不仅仅能为公司带来巨大的互联网上的收集和信息发布平台,创新互联公司面向各种领域:玻璃钢坐凳网站设计成都全网营销推广解决方案、网站设计等建站排名服务。


结果:

   用PHP简单计算信源熵

      以上是一个简单的程序,大家也可以加入数据库,对标点符号,汉字,特殊字符进行计算,也可以设置成表单输入!
       我的演示就到这里,有什么不足还请大家提出!

分享名称:用PHP简单计算信源熵
文章转载:https://www.cdcxhl.com/article2/ihihic.html

成都网站建设公司_创新互联,为您提供外贸建站自适应网站面包屑导航网站收录静态网站网站设计公司

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

微信小程序开发