想统计一下历史数据,
比如数列
1
2
4
3
4
5
6
7
8
4
4
3
2
5
7
.
.
.
几千条数据, 当1出现后,后面会出现几,出现了多少次,概率是多少
比如 1出现后,后面2出现了3次 占比4%
数字紧紧限于 1 2 3 4 5 6 7 8 9 0
稍微尝试写了一下,大概能符合,你所说的功能,望采纳
#include<iostream>
#include<vector>
#include<ctime>
#include<algorithm>
using std::cout;
using std::endl;
using std::vector;
int main() {
//此部分为构造包含0~9的数组,并查看
vector<int> v; //用于保存数据的数组
srand((unsigned int)time(NULL)); //设置随机数种子,是数据具有多样性
for (int i = 0; i < 10; i++) {
v.push_back(rand() % 10);
}
for (auto i : v) {
cout << i << " ";
}
cout << endl;
//关键部分
auto iter = v.begin();
while ((iter = find(iter, v.end(), 1)) != v.end()) {
if (++iter == v.end()) {
cout << "1出现后,后面无数据";
break;
}
double temp = count(iter, v.end(), *iter);
cout << "1出现后,后面" << *iter << "出现了" << temp << "次 ,占比" << (temp / v.size()) * 100 << "%" << endl;
}
return 0;
}