SHARE
TWEET

Untitled

a guest Nov 14th, 2017 57 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4.  
  5. long N[3] = { 10000, 100000, 1000000 }; //кол во номеров
  6. int r[3] = { 2, 4, 16 }; // max значения
  7.  
  8. vector<int> getNumbers(int indexOfN, int indexOfR); //вектор для получения всех чисел по индексам
  9. long getRandomNumber(int min, int max); //получить случайное число в диапазоне
  10. long getAverage(vector<int> numbers); // получить среднее значение чисел
  11. double getDeviation(long average, vector<int> numbers); // получить среднеквадратичное отклонение
  12.  
  13. int main() {
  14.     for (int indexOfN = 0; indexOfN < 3; indexOfN++) {
  15.         for (int indexOfR = 0; indexOfR < 3; indexOfR++) {
  16.             vector<int> numbers = getNumbers(indexOfN, indexOfR); // все числа в текущих N и r
  17.             long average = getAverage(numbers);
  18.             double deviation = getDeviation(average, numbers);
  19.             cout << "N = " << N[indexOfN] << " and " << "r = " << r[indexOfR] << ":\n";
  20.             cout << "Average: " << average << "\n";
  21.             cout << "Deviation: " << deviation << "\n\n";
  22.         }
  23.     }
  24.     system("pause");
  25.     return 0;
  26. }
  27.  
  28. vector<int> getNumbers(int indexOfN, int indexOfR)
  29. {
  30.     vector<int> numbers;
  31.     for (int i = 0; i < N[indexOfN]; i++)
  32.     {
  33.         numbers.push_back(getRandomNumber(1, r[indexOfR] - 1));
  34.     }
  35.     system("pause");
  36.     return numbers;
  37. }
  38.  
  39. long getRandomNumber(int min, int max)
  40. {
  41.     return min + int((rand() / (double)(RAND_MAX + 1) * (max - min + 1)));
  42.  
  43. }
  44.  
  45. long getAverage(vector<int> numbers) {
  46.     long average = 0;
  47.  
  48.     for (unsigned int i = 0; i < numbers.size(); i++) {
  49.         average += numbers[i];
  50.     }
  51.  
  52.     average /= numbers.size();
  53.  
  54.     return average;
  55. }
  56.  
  57. double getDeviation(long average, vector<int> numbers) {
  58.     double deviation = 0;
  59.  
  60.     for (unsigned int i = 0; i < numbers.size(); i++) {
  61.         deviation += pow(numbers[i] - average, 2);
  62.     }
  63.  
  64.     deviation = sqrt(deviation / numbers.size());
  65.     system("pause");
  66.     return deviation;
  67. }
RAW Paste Data
Top