介绍:n个离散值,经过数次循环,各个离散值无限接近于n值的平均值
#include <iostream>
#include <vector>
#include <string>
#include <stdlib.h>
#include <time.h>
using namespace std;
int main() {
srand((unsigned)time(NULL));
int n,t;
double sum=0;
n = 10 + rand() % 10;
t = 10 + rand() % 10;
cout << "总共" << n << "个点" <<"循环"<<t<<"次"<< endl;
vector<double> v(n);
cout << "初始值:" << endl;
for (int i = 0; i < n; i++) {
double temp = 1 + rand() % 99;
v[i] = temp;
sum += temp;
cout << temp << " ";
}
cout << endl;
for (int i = 0; i <t; i++) {
for (int j = 0; j < n; j++) {
int jj = 0 + rand() % n;
v[j] = (v[j] + v[jj]) / 2;
v[jj] = v[j];
}
cout << "第" << i + 1 << "次循环后:" << endl;
for (int j = 0; j < n; j++)
{
cout << v[j] << " ";
}
cout << endl;
}
cout << endl;
cout << "预设平均值:" << sum / n << endl;
system("pause");
return 0;
}