0 / 0 / 1
Регистрация: 15.11.2009
Сообщений: 18
1

Заполнить матрицу случайными числами не используя библиотечную функцию rand

15.11.2009, 19:17. Показов 1902. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!!! У меня есть такое задание не могу решать может поможете??

Случайные целые числа в диапазоне от - 32768 до 32678 можно получить с помощью функции

C++
1
2
3
4
5
6
int casual ()
{
 static int randx = 1;
 randx = (randx * 25173 + 13849) % 65536;
 return randx;
}
Используя функцию casual (), заполните случайными числами двухмерный массив (квадратную матрицу) размером N * N, где N определите как целую положительную константу. Получите два массива (вектора): вектор, элементы которого равны средним арифметическим значениям строк матрицы, и вектор, элементы которого равны средним арифметическим значениям столбцов матрицы.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.11.2009, 19:17
Ответы с готовыми решениями:

Заполнить матрицу случайными числами. Вернуть матрицу на 90o по часовой стрелке
Заполнить матрицу случайными числами. Вернуть матрицу на 90o по часовой стрелке.

Заполнить матрицу случайными числами. Развернуть матрицу на 90(градусов) против часовой стрелки
Заполнить матрицу случайными числами. Развернуть матрицу на 90o против часовой стрелки

Заполнить матрицу 9x9 случайными числами. Отобразить матрицу симметрично относительно главной диагонали
Заполнить матрицу случайными числами. Отобразить матрицу симметрично относительно главной диагонали

Заполнить матрицу случайными числами. Разбить матрицу на квадраты размером 3х3. В центре каждого квадрата поме
Помогите пожалуйста есть некоторые мысли, ну успешного ответа нет :((( #include <iostream>...

2
2816 / 1407 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
15.11.2009, 19:42 2
Как-то так
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
#include <iostream>
using namespace std;
 
int casual();
 
int main()
{
    const int N = 5;
    int A[N][N];
    double B[N], C[N];
    
    for (int i=0; i<N; i++)
    {
        for (int j=0; j<N; j++)
        {
            A[i][j] = casual();
            cout.width(10);
            cout << A[i][j];
        }
        cout << endl;
    }
    
    for (int i=0; i<N; i++)
    {
        double SumI = 0;
        double SumJ = 0;
        for (int j=0; j<N; j++)
        {
            SumI += A[i][j];
            SumJ += A[j][i];
        }
        B[i] = SumI/N;
        C[i] = SumJ/N;
    }  
    
    cout << "\nB: " << endl;
    for (int i=0; i<N; i++)
        cout << B[i] << endl;
        
    cout << "\nC: " << endl;
    for (int i=0; i<N; i++)
        cout << C[i] << endl;
        
    system("pause");
    return 0;
}
 
int casual()
{
    static int randx = 1;
    randx = (randx * 25173 + 13849) % 65536;
    return randx;
}
1
0 / 0 / 1
Регистрация: 15.11.2009
Сообщений: 18
15.11.2009, 22:19  [ТС] 3
Огромное спасибо за информацию я тут немного подогнал код чтобы было похоже что на мой уровень
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
#include <iostream>
#include <conio.h>
using namespace std;
 
int casual();                   //прототип функции  casual
 
int main()
{
    setlocale(LC_ALL, "");
    const int N = 5;            //задаем константу N=5
    int A[N][N];                //создаем массив матрицу N*N
    double B[N], C[N];          //массив со среднеарифмитическими значениями строк и столбцов матрицы N*N
    cout << "Случайная матрица значений:\n" << '\n';
    for (int i=0; i<N; i++)     //цикл заполнения матрицы
    {
        for (int j=0; j<N; j++)
        {
            A[i][j] = casual();     //заполнения матрицы с помощью функции casual
            cout << "  " << A[i][j];
        }
        cout << '\n';               //переход на новую строчку
    }
    
    for (int i=0; i<N; i++)         //цикл вычисления среднеарифмитических значений строк и столбцов матрицы N*N
    {
        double SumI = 0;            //переменная с суммой значений строки
        double SumJ = 0;            //переменная с суммой значений столбца
        for (int j=0; j<N; j++)     
        {
            SumI += A[i][j];        //заполнение суммы строки
            SumJ += A[j][i];        //заполнение суммы столбца
        }
        B[i] = SumI/N;              //заполнение массива среднеарифмитического значения строки
        C[i] = SumJ/N;              //заполнение массива среднеарифмитического значения столбца
    }  
    
    cout << "\nСреднеарифмитическое значение строк:\n" << '\n';
    for (int i=0; i<N; i++)         //цикл вывод массива со среднеарифмитическим значением строк
        cout << B[i] << '\n';
        
    cout << "\nСреднеарифмитическое значение столбцов:\n" << '\n';
    for (int i=0; i<N; i++)         //цикл вывод массива со среднеарифмитическим значением столбцов
        cout << C[i] << '\n';
        
    getch ();
    return 0;
}
 
int casual()                        //определение функции casual
{
    static int randx = 1;
    randx = (randx * 25173 + 13849) % 65536;
    return randx;
}
Еще раз спасибо всем
0
15.11.2009, 22:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.11.2009, 22:19
Помогаю со студенческими работами здесь

Заполнить матрицу случайными числами
отобразить матрицу симметрично относительно главной диагонали

Заполнить матрицу случайными числами
Заполнить матрицу случайными числами. Развернуть матрицу на 90o против часовой стрелки.

Заполнить матрицу случайными числами
3. Сформировать динамический двумерный массив, заполнить его случайными числами и вывести на печать.

Заполнить матрицу случайными числами
Заполнить матрицу случайными числами. Показать главную и побочную диагонали симметрично...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru