c语言计算文本信息熵,C语言求信息熵,条件熵,联合熵

article/2025/8/20 7:32:36

62e50291a81fc54b507f33cb80033297.gif C语言求信息熵,条件熵,联合熵

(3页)

0142da23d4ca4bcede81ef111e6023ae.png

本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!

11.90 积分

#include#include#define u 20int i,j,n,m;float H_X,H_Y,H_XY,H_XpY,Pypx[u][u],Px[u],H_YpX,Py[u],Pxpy[u][u],Pxy[u][u];/*H_X=H(X)平均自信息;H_XY=H(XY)联合熵;H_XpY=H(X|Y)、H_YpX=H(Y|X)条件熵;Pypx[i][j]=P(y[j]|x[i])条件概率;Px[i]=P(x[i])发x[i]的概率;H_XpY=H(Y/X)条件熵;Py[j]=P(y[j])收到y[j]的概率;Pxpy[i][j]=P(x[i]/y[j])条件概率;Pxy[i][j]=P(x[i]y[j])联合概率*//*定义以2为底的对数函数*/ float log2(float x){ float z; z=(float)(log(x)/log(2)); return z;}/*求信源熵函数*/float entropy(float *x,int n){ float z=0; for(i=1;i<=n;i++) { z+=(*(x+i))*log2(1/(*(x+i))); } return z;}/*求联合熵的函数*/float joint_entropy(float (*p)[u]){ float z=0; for(i=1;i<=n;i++) for(j=1;j<=m;j++) { z+=*(p[i]+j)*log2(1/(*(p[i]+j))); } return z; }main(){ float s=0; printf("\nplease in put the dimension of 'X' and 'Y'\n"); scanf("%d %d",&n,&m); printf("\nThe dimension of X is n=%d\nThe dimension of Y is m=%d\nPlease input the condition probability:P(y[j]/x[i]),",n,m); printf("(after you input one number please click the 'enter')\n");/*条件概率P(y[j]/x[i])赋值*/ for(i=1;i<=n;i++) {for(j=1;j<=m;j++) {printf("P(y[%d]/x[%d])=",j,i); scanf("%f",&Pypx[i][j]); } } printf("please input P(x[i]):(after you input one number please click the 'enter')\n"); for(i=1;i<=n;i++) {printf("P(x[%d])=",i); scanf("%f",&Px[i]); }/*判断输入X的概率是否正确,不正确则退出程序*/ for(i=1;i<=n;i++) {if((Px[i]<0)||(Px[i]>1)) {printf("Please input right value of probability\n"); goto End_exe; } s+=Px[i]; } if((s-1)*(s-1)>0.001) {printf("Please input the right value of probability\n"); goto End_exe; } for(i=1;i<=n;i++) {s=0; for(j=1;j<=m;j++) {s+=Pypx[i][j]; } if((s-1)*(s-1)>0.001) {printf("Please input the right value of probability\n"); goto End_exe; } }/*计算Py[j]=P(y[j])收到y[j]的概率;Pxpy[i][j]=P(x[i]/y[j])条件概率;Pxy[i][j]=P(x[i]y[j])联合概率*/ for(i=1;i<=n;i++) {for(j=1;j<=m;j++) {Pxy[i][j]=Pypx[i][j]*Px[i]; printf("Px[%d]y[%d]=%f\n",i,j,Pxy[i][j]); } } for(j=1;j<=m;j++) { s=0; for(i=1;i<=n;i++) s+=Pxy[i][j]; Py[j]=s; printf("P(y[%d])=%f\n",j,Py[j]); } for(i=1;i<=n;i++) {for(j=1;j<=m;j++) {Pxpy[i][j]=Pxy[i][j]/Py[j]; printf("P(x[%d]/y[%d])=%f\n",i,j,Pxpy[i][j]); } }/*结束 计算Py[j]=P(y[j])收到y[j]的概率; Pxpy[i][j]=P(x[i]/y[j])条件概率; Pxy[i][j]=P(x[i]y[j])联合概率*//*输出信源熵*/ H_X=entropy(Px,n); printf("\nThe entropy of X :H(X)=%f\n",H_X); H_Y=entropy(Py,m); printf("\nThe entropy of Y :H(Y)=%f\n",H_Y);/*输出联合熵*/ H_XY=joint_entropy(Pxy); printf("\nThe joint entropy of X and Y :H(XY)=%f\n",H_XY);/*输出条件熵*/ H_XpY=H_XY-H_Y; H_YpX=H_XY-H_X; printf("\nThe conditional entropy:\nH(X/Y)=%f\t\tH(Y/X)=%f\n",H_XpY,H_YpX);End_exe:;} 关 键 词: C语言求信息熵条件熵联合熵

524d6daf746efaa52c3c71bbfe7ba172.gif  天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。


http://chatgpt.dhexx.cn/article/UYlpk1S5.shtml

相关文章

谭浩强C语言笔记

文章目录 谭浩强C语言笔记1.C语言基础知识1.常量和变量1.1入门程序1.2 常量1.2.1 整型常量1.2.2 实型&#xff08;浮点型&#xff09;常量1.2.3 字符常量1.2.4 字符串常量1.2.5 符号常量 1.3 变量1.4 常变量 2.标识符和关键字2.1 标识符2.2 关键字2.3 小习题 3. 基本数据类型3.…

天池比赛总结1

这次参加天池的一场比赛 先把数据读取了如下 接下来准备使用YOLO框出图片中的字符&#xff0c;然后进行识别

比赛总结+近期总结

比赛总结&#xff1a; 这次比赛没考好 20(没加高精度)0&#xff08;文件输出写错&#xff09;1000120 T1&#xff1a;这一题的方法是分解质因数高精度 T2&#xff1a;明显就是一道spfa的题嘛 T3&#xff1a;强大的四维DP&#xff08;我的神啊&#xff01;&#xff09; T4&#…

计算机课件比赛总结,课件制作比赛活动总结

【www.gz85.com - 投篮比赛活动工作总结】 课件制作比赛&#xff0c;是对计算机多媒体等辅助手段的一次检阅&#xff0c;也有力地促进了制作多媒体课件技艺的提高。下面是小编为您整理的“课件制作比赛活动总结”&#xff0c;仅供参考&#xff0c;希望您喜欢&#xff01;更多详…

2018年全国邀请赛(江苏) 比赛总结

先吐槽一下中矿大。。。周六在食堂吃的午饭&#xff0c;肉菜一个鱼一个辣土豆炒牛肉&#xff0c;对于对鱼过敏又感冒比较严重的我来说。。。&#xff08;然后再也没去食堂吃饭&#xff09; 南湖校区大是真大&#xff0c;风景也不错&#xff0c;就是门口离体育馆有点远。。。&a…

比赛总结

比赛总结 比赛总结-a5165.png 初赛终于结束了&#xff0c;头一次如此投入去打比赛&#xff0c;这一个多月以来真是痛并快乐着。最大的感悟是&#xff1a;构造线下验证集并没有什么用&#xff0c;做了一堆工作还不如一个leak。首先取得这个成绩算是给自己一个交代了&#xff0c;…

关于全国大学生软件测试大赛总结与反思

关于全国大学生软件测试大赛总结与反思 文章目录 一、软件测试大赛简介二、可能出现的错误三、个人总结与反思四、谈谈软件测试工程师1、测试的三个阶段2、就业优势3、就业要求4、参考薪资 一、软件测试大赛简介 由教育部软件工程专业教学指导委员会、全国高等院校计算机基础教…

【赛后总结】第十三届服务外包创新创业大赛总结——A14

目录 前言组队&#xff06;选题分工&项目推进提交材料&项目答辩区域赛初赛区域赛决赛全国总决赛 写在最后 前言 先摆两个参赛视频 初赛视频 决赛视频 比赛已经过去几个月了&#xff0c;也算是想起来这个比赛可以写一个总结了。在历时8个月左右的时间之后&#xff0c;我…

计算机大赛总结发言稿,学校技能比赛总结发言稿

学校技能比赛总结发言稿 总结就是把一个时间段取得的成绩、存在的问题及得到的经验和教训进行一次全面系统的总结的书面材料&#xff0c;写总结有利于我们学习和工作能力的提高&#xff0c;因此十分有必须要写一份总结哦。那么总结要注意有什么内容呢&#xff1f;以下是小编帮大…

计算机知识与技能比赛活动总结,中职技能大赛总结(精选6篇)

中职技能大赛总结(精选6篇) 总结是对取得的成绩、存在的问题及得到的经验和教训等方面情况进行评价与描述的一种书面材料&#xff0c;它能够使头脑更加清醒&#xff0c;目标更加明确&#xff0c;因此我们需要回头归纳&#xff0c;写一份总结了。那么你知道总结如何写吗&#xf…

稳定的iOS迅雷来了 不用再每次想用都要重装

迅雷iOS下载:www.xunlei-iosd.top 用过苹果产品的朋友都知道&#xff0c;在iOS系统里&#xff0c;迅雷这一APP是不存在的。当有朋友分享了某些资源给你&#xff0c;只能想办法使用复杂的操作安装一个寿命只有几天的迅雷APP。 今天&#xff0c;官方推出了“永久版”iOS迅雷&…

iOS - Threads 多线程

1、Threads 1.1 进程 进程是指在系统中正在运行的一个应用程序。每个进程之间是独立的&#xff0c;每个进程均运行在其专用且受保护的内存空间内。 比如同时打开 QQ、Xcode&#xff0c;系统就会分别启动两个进程。通过 “活动监视器” 可以查看 Mac 系统中所开启的进程。 一个程…

iOS面试知识点梳理

1.iOS开发者账号类型 “个人”开发者可以申请升级“公司”&#xff0c;可以通过拨打苹果公司客服电话&#xff08;400 6701 855&#xff09;来咨询和办理。公司账号允许多个开发者进行协作开发&#xff0c;比个人多一些帐号管理的设置&#xff0c;可设置多个Apple ID&#xff0…

2019年iOS面试真题大全(3-5年)

如果你想去大公司,如果你是3年左右的iOS开发者,如果你对面试的未知没有十足的信心,如果你期望的薪资在15K,那么请认真刷完这300道面试题,都是真实公司经历的…答案会在近期更新!你要先自思考,看个人那些方面还不足! 1、自我介绍 2、如何实现一个倒计时功能&#xff0c;类似于蘑…

IOS开发系列之阿堂教程:构建开发IOS应用的虚拟机开发环境实践

说到IOS的开发,不能不说 到一个问题,如何配置和构建一个IOS的开发环境!我下面要说的主要是针对没有MAC Apple机的网友,如何安装和配置一个属于自己的IOS开发环境。如果已经有MAC 苹果机的网友,请忽略此文。因为有MAC 苹果机,就只需要安装XCODE的IDE开发工具就行了。 …

web安全渗透测试基础知识

渗透测试入门 渗透测试前置知识靶场环境搭建windows基础网络基础web应用/架构搭建/站库分离/路由访问web四大件-系统web四大件-中间件web四大件-数据库web四大件-源码路由访问 web架构/前后端分离/建站分配Web架构/OSS存储/CDN加速/反向代理APP架构反弹SHELL/文件下载抓包技术算…

《iOS移动开发从入门到精通》图书连载2:如何成为一名iOS开发者

iOS开发人员&#xff0c;和其它传统开发者相比有哪些不同之处&#xff1f;需要具备怎样的硬件和软件条件&#xff1f;今天我们就来说说这一部分的内容。 一.硬件上的需求 开发iOS应用&#xff0c;首先您需要使用Apple的电脑。尽管您可以使用黑苹果或者虚拟机&#xff0c;在PC上…

Jetson Nano目标检测手把手实战教程(pytorch训练、tensorrt推理,含完整代码和数据)

目录 一、概述 1.1 深度学习和边缘计算 1.2 Jetson Nano简介 二、深度学习环境安装 2.1 Pytorch框架 2.2 在Jetson Nano上安装Pytorch 三、算法原理 四、具体实现步骤 4.1 工程代码和环境准备 4.2 模型训练和推理 4.2.1数据集准备 4.2.2训练 4.2.3模型转换 4.2.4…

各种HOOK方式和检测对抗方法

一、什么是HOOK? hook翻译过来是拦截的意思, 我们很多时候也叫钩子,其实是很形象的. hook有什么作用呢? 1.当代码执行到某行时,获取寄存器值和内存里的值&#xff0c;进行调试分析&#xff0c;例如hook明文包. 2.当代码执行到某行时,插入想执行的代码.例如迅雷拦截发包函…

2019 - iOS最新最全面试题梳理(内含框架和算法题)

内存中的区域划分 栈区(stack):由系统自动分配和释放&#xff0c;存放局部变量的值&#xff0c;容量小速度快&#xff0c;有序 堆&#xff1a;一般由程序员分配和释放&#xff0c;如果不释放&#xff0c;则出现内存泄露。程序会回收您的内存&#xff0c;特点&#xff1a;容量大…