数据处理,用C++或者Java编写,求一组数的方差均值众数标准差中位数等三十个数 100

数据处理,用C++或者Java编写,求一组数的方差均值众数标准差中位数等三十个数求助,数据挖掘编一段程序,归类整理三十个数,就像均值啊方差这些,建一个数组。然后把这个数组... 数据处理,用C++或者Java编写,求一组数的方差均值众数标准差中位数等三十个数求助,数据挖掘编一段程序,归类整理三十个数,就像均值啊方差这些,建一个数组。然后把这个数组的均值啊众数啊方差啊一堆一共三十个数弄出来 展开
 我来答
百度网友3a00d8c64
2016-10-01 · TA获得超过599个赞
知道小有建树答主
回答量:430
采纳率:64%
帮助的人:325万
展开全部

1、完整代码如下:

2、debug:VS2012

3、三种值的求值方法已经写出。

4、C++的情况还是不要用数组了,有STL不用怎能说得过去。

#include<iostream>
#include<time.h>
#include<vector>
#include<map>
using namespace std;
int randNum(int rangeMin,int rangeMax)//随机数生成函数
{
 return static_cast<double>(rand())/(RAND_MAX+1)*(rangeMax-rangeMin+1)+rangeMin; 
}
double calcAverage(vector<int> vec)
{
 int sum = 0;
 for(vector<int>::iterator vIt=vec.begin(); vIt!=vec.end();vIt++)
  sum += *vIt;
 cout << "Array vecT's average is:" << sum/vec.size() << endl;
 return sum/vec.size();
}
double calcVariance(double average, vector<int> vec)
{
 double variance = 0;
 for(vector<int>::iterator vIt=vec.begin(); vIt!=vec.end();vIt++)
  variance += pow((*vIt-average),2);
 cout << "Array vecT's variance is:" << variance/vec.size() << endl;
 return variance/vec.size();
}
int findMode(vector<int> vec)
{
 int modeCnt = 0;//判断是复数/单数个众数
 map<int,int> findMode;
 map<int,int> getMode;
 for(vector<int>::iterator vIt=vec.begin(); vIt!=vec.end();vIt++)
  ++findMode[*vIt];
 int max = findMode.begin()->second;
 for(map<int,int>::iterator mIt=findMode.begin();mIt!=findMode.end();mIt++)
  max = max >= mIt->second?max:mIt->second;
 //测试用输出语句,没事请自行注释.
 /*
 for(map<int,int>::iterator mIt=findMode.begin();mIt!=findMode.end();mIt++)
  cout << mIt->first << " " << mIt->second << endl;
 */
 //比较最大值与原map容器中的值,获得的键值对插入到新的map容器中以计算数个众数
 for(map<int,int>::iterator mIt=findMode.begin();mIt!=findMode.end();mIt++)
 {
  if(mIt->second == max)
  {
   getMode.insert(*mIt);
   modeCnt++;
  }
 }
 if(modeCnt>1)
  cout << "There are more than 1 mode in the array:" << endl;
 else
  cout << "There is only one mode in the array:" << endl;
 for(map<int,int>::iterator mIt=getMode.begin();mIt!=getMode.end();mIt++)
  cout << mIt->first << " " << mIt->second << endl;
 return 0;
}
int main()
{
 //本程序仅限整数,如果想修改成template,只要加上关键字和改一改就好了。
 //Find average,variance,mode in array(container)
 //initialize by random.
 srand(time(NULL));//随机数种子,头文件
 vector<int> vecT;
 for(int i=0;i!=30;i++)
  vecT.push_back(randNum(1,30));
 //initialize by input
 /*可以通过复制数据,数据会自动以空格判断是否为第二个数,现在注释掉
 int value;
 while(cin >> value)
  vecT.push_back(value);
 cin.clear();
 */
 //call function
 double aver = calcAverage(vecT);
 calcVariance(aver, vecT);
 findMode(vecT); 
 return 0;
}
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
匿名用户
2016-09-30
展开全部
是 不是就是方差计算呀
追问
对,一共三十个数
追答

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式