AMS算法

  1 #include<stdio.h>
  2 #include<stdlib.h>
  3 #include<time.h>
  4
  5 #define N 1000//采样点的个数
  6 #define M 5//分组
  7
  8 #define SIZE 10000
  9
 10 typedef struct
 11 {
 12     int element;
 13     int count;
 14 }ATTRIBUTE;
 15
 16
 17 int main()
 18 {
 19     ATTRIBUTE attr[100000];
 20     int secmom=0;//真实二阶矩
 21     int data;//接收读取之后的值
 22     int i=0,j,k;//循环控制变量
 23     int count_tmp=0;//临时计数变量
 24     //int n=5;//采样点的个数
 25     double secmom_estima=0;
 26     ATTRIBUTE sample[10000];
 27     int tmp;
 28     int a[10000];
 29     int loc[N];//采样位置保存在数组里
 30     int sample_group[M][N];
 31     //FILE *fp =fopen("./stream_for_ams.txt","r");
 32
 33     FILE *fp =fopen("./stream_sample_ams.txt","r");
 34
 35     srand(time(0));
 36     for(j=0;j<N;j++)
 37     {
 38         loc[j]=rand()%SIZE;//获取随机采样位置
 39     }
 40
 41     for(j=0;j<N;j++)//随机位置排序
 42     {
 43         for(k=j+1;k<N;k++)
 44         {
 45             if(loc[j] > loc[k])
 46             {
 47                 tmp = loc[k];
 48                 loc[k]=loc[j];
 49                 loc[j]=tmp;
 50             }
 51         }
 52     }
 53
 54     if(fp == NULL)//文件读取失败
 55     {
 56         printf("file can‘t open!\n");
 57         exit(0);
 58     }
 59     while(!feof(fp))
 60     {
 61         fscanf(fp,"%d",&data);
 62         a[i]=data;//存数据
 63         /***************采样*****************/
 64         for(j=0;j<N;j++)
 65         {
 66             if(loc[j] == i)
 67             {
 68                 sample[j].element=data;
 69                 sample[j].count=0;
 70             }
 71             if(sample[j].element == data)
 72             {
 73                 sample[j].count+=1;
 74             }
 75         }
 76
 77         /*****************真实***********************/
 78         for(j=0;j<count_tmp;j++)
 79         {
 80             if(attr[j].element == data)//如果该数据被存过则count+1
 81             {
 82                 attr[j].count +=1;
 83                 break;//扫描比对成功退出循环
 84             }
 85         }
 86         if( j == count_tmp)//如果没有该数据第一次出现
 87         {
 88             attr[count_tmp].element=data;//记录
 89             attr[count_tmp].count=1;
 90             count_tmp++;//记录第一次出现的数
 91         }
 92         printf("%.2lf%%\r", i * 100.0/ SIZE);
 93         i++;
 94     }
 95
 96     /******************组合估计二阶矩***********************/
 97     for(i=0;i<M;i++)//分组M
 98     {
 99         for(j=0;j<N;j++)//每组N个随机位置
100         {
101             loc[j]=rand()%SIZE;//获取随机采样位置
102         }
103         for(j=0;j<N;j++)//随机位置排序
104         {
105             for(k=j+1;k<N;k++)
106             {
107                 if(loc[j] > loc[k])
108                 {
109                     tmp = loc[k];
110                     loc[k]=loc[j];
111                     loc[j]=tmp;
112                 }
113             }
114         }
115         for(j=0;j<N;j++)
116         {
117             if(loc[j] == i)
118             {
119                 sample_group[i][j]=
120                 sample[j].count=0;
121             }
122             if(sample[j].element == data)
123             {
124                 sample[j].count+=1;
125             }
126         }
127
128     }
129
130     /************估计无组合估计二阶矩**********************/
131     for(j=0;j<N;j++)
132     {
133         secmom_estima+=SIZE*(2.0*sample[j].count-1);
134     }
135     printf("无组合估计二阶矩:%.2lf\n",secmom_estima/N);
136
137     /***********真实二阶矩*************/
138     for(j=0;j<count_tmp;j++)
139     {
140         //printf("%d\t%d\n",attr[j].element,attr[j].count);
141         secmom+=attr[j].count*attr[j].count;
142     }
143     printf("独立数%d\n",count_tmp);
144     printf("真实二阶矩为:%d\n",secmom);
145
146     system("pause");
147     return 0;
148 }
时间: 2024-11-02 17:49:48

AMS算法的相关文章

大数据:互联网大规模数据挖掘与分布式处理pdf

下载地址:网盘下载 内容简介  · · · · · · 大数据:互联网大规模数据挖掘与分布式处理,ISBN:9787115291318,作者:(美) Anand Rajaraman (美) Jeffrey David Ullman 著,王 斌 译 作者简介  · · · · · · Anand Rajaraman 数据库和Web技术领域权威,创业投资基金Cambrian联合创始人,斯坦福大学计算机科学系助理教授.Rajaraman职业生涯非常成功:1996年创办Junglee公司,两年后该公司被

Mentor.Graphics.AMS.v2011.1 Win32_64 1CD(电路设计)

MENTOR GRAPHICS系列产品: Mentor.Graphics.AMS.v13.1.ELDO.Win32 1CD Mentor.Graphics.AMS.v2010.2a.Linux 1DVD Mentor.Graphics.AMS.v2010.2a.Linux64 1DVD Mentor.Graphics.Board.Station.XE.Flow(BSXE).2007.2-ISO 1DVD(電路板系統) Mentor.Graphics.BST.v2004.Spac5.Linux.D

经典排序算法 - 冒泡排序Bubble sort

 原文出自于 http://www.cnblogs.com/kkun/archive/2011/11/23/bubble_sort.html 经典排序算法 - 冒泡排序Bubble sort 原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换, 这样一趟过去后,最大或最小的数字被交换到了最后一位, 然后再从头开始进行两两比较交换,直到倒数第二位时结束,其余类似看例子 例子为从小到大排序, 原始待排序数组| 6 | 2 | 4 | 1 | 5 | 9 | 第一趟排序(外循环) 第

转载:DenseNet算法详解

原文连接:http://blog.csdn.net/u014380165/article/details/75142664 参考连接:http://blog.csdn.net/u012938704/article/details/53468483 本文这里仅当学习笔记使用,具体细节建议前往原文细度. 论文:Densely Connected Convolutional Networks 论文链接:https://arxiv.org/pdf/1608.06993.pdf 代码的github链接:h

基于位置信息的聚类算法介绍及模型选择

百度百科 聚类:将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类.由聚类所生成的簇是一组数据对象的集合,这些对象与同一个簇中的对象彼此相似,与其他簇中的对象相异."物以类聚,人以群分",在自然科学和社会科学中,存在着大量的分类问题.聚类分析又称群分析,它是研究(样品或指标)分类问题的一种统计分析方法.聚类分析起源于分类学,但是聚类不等于分类.聚类与分类的不同在于,聚类所要求划分的类是未知的. 分类和聚类算法一直以来都是数据挖掘,机器学习领域的热门课题,因此产生了众多的

密码算法详解——AES

0 AES简介 美国国家标准技术研究所在2001年发布了高级加密标准(AES).AES是一个对称分组密码算法,旨在取代DES成为广泛使用的标准. 根据使用的密码长度,AES最常见的有3种方案,用以适应不同的场景要求,分别是AES-128.AES-192和AES-256.本文主要对AES-128进行介绍,另外两种的思路基本一样,只是轮数会适当增加. 1 算法流程 AES加解密的流程图如下: AES加密过程涉及到4种操作:字节替代(SubBytes).行移位(ShiftRows).列混淆(MixCo

矩阵乘法的Strassen算法详解

题目描述 请编程实现矩阵乘法,并考虑当矩阵规模较大时的优化方法. 思路分析 根据wikipedia上的介绍:两个矩阵的乘法仅当第一个矩阵B的列数和另一个矩阵A的行数相等时才能定义.如A是m×n矩阵和B是n×p矩阵,它们的乘积AB是一个m×p矩阵,它的一个元素其中 1 ≤ i ≤ m, 1 ≤ j ≤ p. 值得一提的是,矩阵乘法满足结合律和分配率,但并不满足交换律,如下图所示的这个例子,两个矩阵交换相乘后,结果变了: 下面咱们来具体解决这个矩阵相乘的问题. 解法一.暴力解法 其实,通过前面的分析

关于SVM数学细节逻辑的个人理解(三) :SMO算法理解

第三部分:SMO算法的个人理解 接下来的这部分我觉得是最难理解的?而且计算也是最难得,就是SMO算法. SMO算法就是帮助我们求解: s.t.   这个优化问题的. 虽然这个优化问题只剩下了α这一个变量,但是别忘了α是一个向量,有m个αi等着我们去优化,所以还是很麻烦,所以大神提出了SMO算法来解决这个优化问题. 关于SMO最好的资料还是论文<Sequential Minimal Optimization A Fast Algorithm for Training Support Vector

基于Spark MLlib平台的协同过滤算法---电影推荐系统

基于Spark MLlib平台的协同过滤算法---电影推荐系统 又好一阵子没有写文章了,阿弥陀佛...最近项目中要做理财推荐,所以,回过头来回顾一下协同过滤算法在推荐系统中的应用. 说到推荐系统,大家可能立马会想到协同过滤算法.本文基于Spark MLlib平台实现一个向用户推荐电影的简单应用.其中,主要包括三部分内容: 协同过滤算法概述 基于模型的协同过滤应用---电影推荐 实时推荐架构分析     一.协同过滤算法概述 本人对算法的研究,目前还不是很深入,这里简单的介绍下其工作原理. 通常,