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

Генератор случайных чисел (double) - C++

Восстановить пароль Регистрация
 
igorfors
0 / 0 / 0
Регистрация: 17.11.2013
Сообщений: 29
15.03.2014, 02:23     Генератор случайных чисел (double) #1
Товарищи,перерыл весь интернет и учебники и не могу понять,что не так в моем коде.
У меня задача: сделать матрицу случайных вещественных чисел,меньших 1. На остальное не смотрите,там все норм

Может,как вариант с printf'ом начудил(так как там выводит только целые числа),пробовал и по-другому НИФИГА
По этому,вы -последняя надежда
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
#include "stdafx.h"
#include <iostream>
#include <cstdlib>
#include <stdio.h>
#include <iomanip>
 
#define N 4
using namespace std;
 
class Matrix {
public:
int a[N][N];
int   i, j;
 
 
 
Matrix () {  //triangle down
for(i=1; i<N; i++) {
  for (j=1; j<N; j++) {
  
  if (i>j || i==j) a[i][j]=5*i;
  else a[i][j]=0;
  }}}
 
Matrix (double q) {  //random
    
for( i=1; i<N; i++) {
  for (j=1; j<N; j++) {
     
   a[i][j] =  rand()/(double)RAND_MAX;
   
     
  }}}
 
Matrix (int M) { //triangle up with M
for(i=1; i<N; i++) {
  for (j=1; j<N; j++) {
  if (i<j) a[i][j]=0;
  else a[i][j]=M*(i+j);}}}
void outm();
void mult (Matrix, Matrix);
};
 
void Matrix::outm() {
 for(i=1; i<N; i++) {
  for (j=1; j<N; j++) {
   printf("%d\t", a[i][j]);}
  printf("\n");}};
 
/*void Matrix::outm2() {
 for(i=1; i<N; i++) {
  for (j=1; j<N; j++) {
   printf("%4f\t", a[i][j]);}
  printf("\n");}};
  */
void Matrix::mult(Matrix M1, Matrix M2) {
Matrix Mx;
for(int i=1; i<N; i++) {
  for (int j=1; j<N; j++) {
      Mx.a[i][j] =0;
      for (int k=1; k<N; k++)
        Mx.a[i][j] += M1.a[i][j] * M2.a[k][j]; };}
Mx.outm();
}
 
 
void main () {
int M;
double q;
 
cout<<"Down triangle matrix\n";
Matrix A;
A.outm();
cout<<"Random matrix\n";
Matrix B(1.0);
B.outm();
cout<<"Enter M = ";
cin>>M;
cout<<"Up triangle matrix with M\n";
Matrix C(M);
C.outm();
cout<<"\n";
cout<<"Dobutok AxC\n";
A.mult(A, C);
cout<<"\n";
cout<<"Dobutok BxA\n";
B.mult(B, A);
cout<<"\n";
cout<<"Dobutok BxC\n";
C.mult(B, C);
system("pause");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.03.2014, 02:23     Генератор случайных чисел (double)
Посмотрите здесь:

C++ Генератор случайных чисел
генератор случайных чисел C++
C++ Генератор случайных чисел
C++ Генератор случайных чисел
C++ генератор случайных чисел
Генератор случайных чисел C++
Генератор случайных чисел C++
Генератор случайных чисел C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
15.03.2014, 05:06     Генератор случайных чисел (double) #2
Цитата Сообщение от igorfors Посмотреть сообщение
сделать матрицу случайных вещественных чисел
Почему тогда массив (int a[N][N]) типа int?

Добавлено через 1 минуту
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
#include "stdafx.h"
#include <iostream>
#include <cstdlib>
#include <stdio.h>
#include <iomanip>
 
#define N 4
using namespace std;
 
class Matrix {
public:
double a[N][N];
int   i, j;
 
 
 
Matrix () {  //triangle down
for(i=1; i<N; i++) {
  for (j=1; j<N; j++) {
  
  if (i>j || i==j) a[i][j]=5*i;
  else a[i][j]=0;
  }}}
 
Matrix (double q) {  //random
    
for( i=1; i<N; i++) {
  for (j=1; j<N; j++) {
     
   a[i][j] =  rand()/(double)RAND_MAX;
   
     
  }}}
 
Matrix (int M) { //triangle up with M
for(i=1; i<N; i++) {
  for (j=1; j<N; j++) {
  if (i<j) a[i][j]=0;
  else a[i][j]=M*(i+j);}}}
void outm();
void mult (Matrix, Matrix);
};
 
void Matrix::outm() {
 for(i=1; i<N; i++) {
  for (j=1; j<N; j++) {
   printf("%lf\t", a[i][j]);}
  printf("\n");}};
 
/*void Matrix::outm2() {
 for(i=1; i<N; i++) {
  for (j=1; j<N; j++) {
   printf("%4f\t", a[i][j]);}
  printf("\n");}};
  */
void Matrix::mult(Matrix M1, Matrix M2) {
Matrix Mx;
for(int i=1; i<N; i++) {
  for (int j=1; j<N; j++) {
      Mx.a[i][j] =0;
      for (int k=1; k<N; k++)
        Mx.a[i][j] += M1.a[i][j] * M2.a[k][j]; };}
Mx.outm();
}
 
 
void main () {
int M;
double q;
 
cout<<"Down triangle matrix\n";
Matrix A;
A.outm();
cout<<"Random matrix\n";
Matrix B(1.0);
B.outm();
cout<<"Enter M = ";
cin>>M;
cout<<"Up triangle matrix with M\n";
Matrix C(M);
C.outm();
cout<<"\n";
cout<<"Dobutok AxC\n";
A.mult(A, C);
cout<<"\n";
cout<<"Dobutok BxA\n";
B.mult(B, A);
cout<<"\n";
cout<<"Dobutok BxC\n";
C.mult(B, C);
system("pause");
}
Yandex
Объявления
15.03.2014, 05:06     Генератор случайных чисел (double)
Ответ Создать тему
Опции темы

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