鱼C论坛

 找回密码
 立即注册
查看: 3962|回复: 2

大佬们,怎么让C语言实现信息熵计算

[复制链接]
发表于 2022-12-27 14:39:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
可以输入任意的信源数量,以及对应数量的空间概率,从而求得任意的信息熵。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-12-27 14:40:27 | 显示全部楼层
不知道
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-1-4 22:23:26 | 显示全部楼层
  1. #include <math.h>
  2. #include <stdio.h>
  3. #define        LOG_N 2

  4. float self_info2(float p[],int *r);
  5. int main(){
  6.     int                input_number=0;
  7.     int                output_number;
  8.     int                *r;
  9.         float        p[input_number];
  10.         float        H=0;
  11.        
  12.         printf("input X number:\n");
  13.     scanf("%d",&input_number);
  14.           
  15.     for(int i=0;i<(input_number);i++)
  16.     {       
  17.             printf("input P(x):\n");
  18.             scanf("%f",&p[i]);
  19.             *r=i;
  20.                 H+=self_info2(p,r);
  21.                 printf("return %f\n",self_info2(p,r));
  22.     }
  23.        
  24.     printf("H(x) result is:%f",H);
  25.     return 0;
  26. }
  27. //求以N为底的,单个概率P的自信息
  28. float self_info2(float p[],int *r){
  29.                 int i;
  30.                 i=*r;
  31.                 return -p[i]*(log(p[i])/log(LOG_N));
  32. }
复制代码
这样
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-22 23:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表