实验二互信息的计算实验二互信息的计算信科1
实验目的进一步熟悉互信息的计算熟练掌握编程语言字符处理程序的设计和调试技术2
实验要求已知:信源符号为英文字母(不区分大小写)和空格
输入:一篇英文的信源文档
输出:列出每两个字母之间的互信息并计算平均互信息
基本思想读入英文字符,分两次读入第一次读入计算字符信息熵,第二次读入计算信道疑义度
计算平均互信息时,把读入的每个英文字符转化为对应的ASCII码,存入数组中
定义一个矩阵,用于存放前后两个字母出现的次数
对数组做循环,p[i]指向前一个字符,p[i+1]指向后个字符,每向后移动一位,把矩阵的元素加1,直至把数组循环完
复制一个矩阵,分别求出联合概率和条件概率,把两个矩阵对应的元素相乘,把矩阵元素累加,即得信道疑义度
用熵减去信道疑义度,即得平均互信息
英文字符Eachofushassuchabank
It'snameis“TIME“
Everymorning,TIMEcreditsyouwith86400seconds
Everynightitwritesovernobalances
Itallowsnooverdraft
Eachdayitopensanewaccountforyou
Eachnightitburnstheremainsoftheday
Ifyoufailtousetheday'sdeposits,tgelossisyours
Thereisnogoingback
Thereisnodrawingagainstthe“tomorrow“
Youmustliveinthepresentontoday'sdeposits
Investitsoastogetfromittheutmostinhealth,happinessandsuccess
Theclockisrunning
Makethemostoftod