如何使用C++中的频率表计算模式
how to calculate mode using frequency table in C++
我的任务是打印数据的模式(最常见的值(,我已经编写了代码来告诉哪个值出现了多少次,但它在我的输出后也显示一些随机数我似乎无法弄清楚为什么
//Calculating and displaying mode
for(i=0; i<6; i++)
{
count = 1;
for(j=i+1; j<6; j++)
{
if(arr[i] == arr[j])
{
count++;
arr_freq[j] = 0;
}
}
if(arr_freq[i] != 0)
arr_freq[i] = count;
}
for(i=0; i<6; i++)
{
if(arr_freq[i] != 0)
cout<<arr[i]<<" "<<arr_freq[i]<<endl;
}
我希望程序打印最常见的值(模式(,但这就是我得到的
3 1
6 1
7 1
8.9 3
5.88413e-39 5.88232e-39
0 5.88232e-39
5.88232e-39 4.96894e-09
0 3.88412e-41
0 9.19956e-38
0 4.34276e-41
0 1.4013e-45
4.96894e-09 5.88131e-39
9.19956e-38 9.26428e-26
4.34276e-41 9.18712e-18
0 5.88232e-39
5.88131e-39 9.19956e-38
0 4.34276e-41
5.88232e-39 -234877
0 -4.92527e+10
9.19956e-38 4.5936e+19
4.34276e-41 -1.71458e+36
4.5936e+19 5.88402e-39
0 9.19956e-38
0 4.34276e-41
0 1.4013e-45
我希望它打印"模式是:(最常见的值(">
这是一个问题,在 SO 上被问得更频繁。
计算数组中元素的频率。标准方法是使用std::map
,将数组的值存储在其中,并为每个相关值递增相应的插槽。
最大频率可以通过STL-std算法std::max_element
找到。
所以基本上我们需要 2 个陈述来回答这个问题。
请参阅以下众多解决方案建议之一:
#include <iostream>
#include <vector>
#include <map>
#include <iterator>
#include <algorithm>
std::vector<int> arr{1,2,2,3,3,3,4,4,4,4,5,5,5,5,5,8,8,8,8,8,8,8,8,6,6,6,6,6,6,7,7,7,7,7,7,7};
int main()
{
// Here we will store the frequency for each element
std::map<int, size_t> frequency;
// Make reading easier
using pair_t = decltype(frequency)::value_type;
// Count frequency
std::for_each(arr.begin(), arr.end(), [&frequency](int& i){ frequency[i]++; });
// Output highes frequency of array value
std::cout << "nMax: " << std::max_element(frequency.begin(), frequency.end(), []
(const pair_t& p1, const pair_t& p2){ return p1.second < p2.second;})->first << "n";
return 0;
}
相关文章:
- 为什么"do while"循环不断退出,即使条件计算结果为 false?
- 递归函数计算序列中的平方和(并输出过程)
- 具有奇怪重复模板模式的派生类中的成员变量已损坏
- (C++)分析树以计算返回错误值的简单算术表达式
- 我的字符计数代码计算错误.为什么
- 在计算中使用二的幂有多有利可图
- 为什么在保护模式下继承升级不起作用
- 如何计算文件中的"columns"数?
- 计算排序向量的向量中唯一值的计数
- 如何在全屏模式下(在OpenGL中)使背景透明
- 如何使用 std::累积在 C++ 中计算总和立方体
- 如何使用C++中的频率表计算模式
- C++脚本来计算模式出现的次数
- 浮点数组的中间模式平均值计算
- 如何计算具有相同SHA-160和的另一位模式
- 计算模式的算法
- 在哪里存储Visitor模式中访问的每个元素的计算结果
- 一次性计算的设计模式
- windows ce:我可以在内核模式下为PID控制回路执行所有的计算
- 尝试将向量<int>推送到映射到计算模式