📄 ctx.cpp
字号:
// ctx.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <ctime>
#include <memory.h>
#include <cmath>
using namespace std;
int main()
{
int n,p[26],i,max,index,j;
char m;
double shang=0,my_p[26];
while(1)
{
cout<<"please put in a number:";
cin>>n;
if(n<0)exit(0);
char *a=new char [n];
srand(time( NULL ) );
memset(p,0,sizeof(int)*26);
for (i=0;i<n;i++)
{
a[i]=rand()%26+65;
p[a[i]-65]++;
}
for (i=0;i<26;i++)
{
my_p[i]=(double)p[i]/n;
}
for (i=0;i<26;i++)
{
if(my_p[i]!=0)
shang+=(my_p[i]*log(1/my_p[i]))/log(2);
}
for(i=0;i<n;i++)
cout<<a[i];
cout<<endl;
cout<<"------------"<<endl;
cout<<"熵="<<shang<<endl;
for(j=0;j<26;j++)
{
max=p[0];
index=0;
for(i=1;i<26;i++)
{
if (max<p[i])
{
max=p[i];
index=i;
}
}
m=(char)index+65;
if(max>0)
cout<<m<<"<"<<max<<">"<<endl;
p[index]=-1;
}
delete []a;
cout<<"------------"<<endl;
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -