Форум программистов, компьютерный форум CyberForum.ru

Нормальное распределение - C++

Восстановить пароль Регистрация
 
IntelCoreDuo
11 / 11 / 0
Регистрация: 09.11.2013
Сообщений: 52
06.01.2014, 14:08     Нормальное распределение #1
Всем доброго времени суток! Суть программы заключается в том, что в файле есть какие-то статистические данные в виде матрицы (в моем случае это показатели рождаемости). Как я понимаю, они будут типа double. В принципе их можно вывести. Затем на основе этих данных генерируется матрица со случайными нормально распределенными величинами (если мне память не изменяет, то они генерируются методом гаусса). Далее эти матрицы перемножаются. Если кому интересно, то я пытаюсь написать демографическую модель Лесли. Общая формула представляется в виде Xt+1 = L*Xt, где Xt и Xt+1 - это векторы населения, а L - это матрица Лесли. То есть если их перемножить, мы получим прогнозирование данных на один год. Чтобы сделать прогноз на несколько лет, нужно полученную матрицу умножить на вновь сгенерированную и.т.д.
Заранее спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.01.2014, 14:08     Нормальное распределение
Посмотрите здесь:

Распределение строк C++
C++ распределение памяти
Распределение памяти C++
Распределение идентификаторов C++
Где найти нормальное описание языка IDL? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
06.01.2014, 14:35     Нормальное распределение #2
Код в студию.
IntelCoreDuo
11 / 11 / 0
Регистрация: 09.11.2013
Сообщений: 52
06.01.2014, 14:56  [ТС]     Нормальное распределение #3
Цитата Сообщение от outoftime Посмотреть сообщение
Код в студию.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
// нормально распределенная велечина
#include "stdafx.h"
#include <conio.h> 
#include <iostream>
#include <iomanip>
#include <math.h>
#include <stdlib.h>
#include <time.h>
#include <random>
#include <string>
using namespace std;
 
int main()
{
  const int nrolls=10000;  // number of experiments
  const int nstars=1000;    // maximum number of stars to distribute
 
  std::default_random_engine generator;
  std::normal_distribution<double> distribution(5.0,2.0);
 
  int p[90]={};
 
  for (int i=0; i<nrolls; ++i) {
    double number = distribution(generator);
    if ((number>=0.0)&&(number<90.0)) ++p[int(number)];
  }
 
  std::cout << "normal_distribution (5.0,2.0):" << std::endl;
 
  for (int i=0; i<90; i+=5) {
    std::cout << i << "-" << (i+4) << ": ";
    std::cout << std::string(p[i]*nstars/nrolls, '*') << std::endl;
  }
  getch();
  return 0;
  
}
Пока что пытаюсь сгенерировать нормально распределенную случайную величину. Вместо чисел идут звездочки (хотел в виде гистограммы составить). Но лучше сделать числа. Это пока все, что я успел и смог сделать. Слева - это возраст, а вместо звездочек должно быть количество человек.
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
07.01.2014, 00:39     Нормальное распределение #4
Цитата Сообщение от IntelCoreDuo Посмотреть сообщение
for (int i=0; i<90; i+=5) {
* * std::cout << i << "-" << (i+4) << ": ";
Что ты хочешь этим сделать? Почему не выводить все значение от 0 до 90, зачем шаг 5?
IntelCoreDuo
11 / 11 / 0
Регистрация: 09.11.2013
Сообщений: 52
07.01.2014, 10:53  [ТС]     Нормальное распределение #5
Цитата Сообщение от outoftime Посмотреть сообщение
Что ты хочешь этим сделать? Почему не выводить все значение от 0 до 90, зачем шаг 5?
Это я вывожу возраст населения с шагом в 5 лет.
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
07.01.2014, 11:16     Нормальное распределение #6
IntelCoreDuo, брал бы среднее значение что-ли.
Цитата Сообщение от IntelCoreDuo Посмотреть сообщение
const int nstars=1000; * *// maximum number of stars to distribute
А это лучше сделайте не больше 80 (количество символов в строке в консоли, точное значение не помню)
Yandex
Объявления
07.01.2014, 11:16     Нормальное распределение
Ответ Создать тему
Опции темы

Текущее время: 23:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru