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

Генератор чисел! - C++

Восстановить пароль Регистрация
 
homerager
0 / 0 / 0
Регистрация: 28.11.2013
Сообщений: 15
03.12.2013, 02:02     Генератор чисел! #1
Всем доброго времени суток. Нужна помощь, является задача сгенерировать матрицуNхM случайных чисел с нормальным законом распределения. Никак не могу приспособить функцию.
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#include <stdio.h>
#include <conio.h>
#include <iostream> 
#include <stdlib.h>
#include <time.h>
#include <iomanip>
#include <math.h>
#define LOFFSET log(RAND_MAX);
 
/*double getLrand(double l)
{
   return (log(rand()+1)-LOFFSET)/(-l); 
}*/
using namespace std; 
const double expp =2.71;
 
int main()
{
 
    setlocale(LC_ALL,".1251");
    srand(time (NULL));
    int **matrix;
    int n, m,dispers,math_f; 
    cout << "Ведiть розмiрнiсть рядкiв матрицi n = ";
    cin >> n;
    cout << "Ведiть розмiрнiсть стовбцiв матрицi m = ";
    cin >> m;
    cout<< "Розмip матрицi: "<<n<<"x"<<m<<endl;
    cout << "Ведiть матиматичне сподiвання M = ";
    cin >> math_f;
    cout << "Ведiть дисперсiю d = ";
    cin >> dispers;
    long long expectation=0;
 
    
   
      matrix = new int*[n];
 
for (int i = 0; i < n; i++)
    {
        matrix[i] = new int [m]; 
    for(int j = 0; j<m ; j++)
    {
    
        int summall=0;
        summall=matrix[i][j]+summall;
            matrix[i][j] = rand();
        
        //matrix[i][j]=(rand()%100-20)*2.71*(-((i-math_f)*(i-math_f))/(2*dispers))*(sqrt(2*3.14159265*dispers));
            cout <<setw(5)<< matrix[i][j] << " ";
        }
        cout << endl; 
        
    }
 
        cout<<"================================"<<endl;
    for(int i = 0; i<m;i++)
    {
        int maxValue=0;
        int Index =-1;
        for(int j = 0; j < n-1; j++)
        {
                
            if((matrix[j][i]>matrix[j+1][i])&&(matrix[j][i]>maxValue))
            {   
                maxValue = matrix[j][i];
                Index =j;
            }
    
            matrix[i][j+1]-=matrix[i][j+0];
        
                    }
        cout<<"В "<<i+1<<" ствобцi максимальний елемент  "<<maxValue<<", з iндексом "<<Index+1<<endl;
        
    }
 
        cout<<"================================"<<endl;
 for (int i=0; i<n; i++)
    {  
        double s=0;
        for (int j=0; j<m; j++)
        {   
            
            s=s+(*(*(matrix+i)+j))*(*(*(matrix+i)+(j)));
            cout <<setw(5)<< matrix[i][j] << " ";
        }
        cout<<"СКВ="<<s/n<<"\t"<<endl;
        cout << endl << endl;
    }
 
    _getch();
    return 0; 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2013, 02:02     Генератор чисел!
Посмотрите здесь:

генератор чисел C++
C++ Генератор псевдослучайных чисел
Генератор чисел C++
C++ Генератор чисел
C++ Генератор случайных чисел
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
stima
430 / 285 / 16
Регистрация: 22.03.2011
Сообщений: 928
Завершенные тесты: 1
03.12.2013, 02:20     Генератор чисел! #2
Какую функцию Вы не можете приспособить?
homerager
0 / 0 / 0
Регистрация: 28.11.2013
Сообщений: 15
03.12.2013, 13:14  [ТС]     Генератор чисел! #3
Название: Безымянный.png
Просмотров: 81

Размер: 1,012 байт
вот эта функция
Я её описал так но работает оно не корекно(
C++
1
matrix[i][j]=(rand()%100-20)*2.71*(-((j-math_f)*(j-math_f))/(2*dispers))*(sqrt(2*3.14159265*dispers));
stima
430 / 285 / 16
Регистрация: 22.03.2011
Сообщений: 928
Завершенные тесты: 1
03.12.2013, 13:25     Генератор чисел! #4
Нормальный закон распределения никто напраямую не имплементирует. Возьмите одно из приближений.
1. Равномерное распределенных случайных величин стремится к нормальному.
2. Преобразование Бокса — Мюллера

3. Если разрешено, то уже готовую имплементацию - std::normal_distribution.
Yandex
Объявления
03.12.2013, 13:25     Генератор чисел!
Ответ Создать тему
Опции темы

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