Умножение Матриц На Вектор

Тема в разделе "Общие вопросы по С и С++", создана пользователем proger2030, 26 ноя 2011.

  1. proger2030

    proger2030 Гость

    Задание
    Выполнить задачу распараллеливания алгоритма (на любом языке программирования.)
    Дано 100 матриц и 100 векторов, умножение каждой матрицы на каждый вектор.
    Пока решил так:
    Код (C++):
    #include <iostream>
    #include <stdlib.h>
    #include <conio.h>
    #include <stdio.h>
    #include <time.h>


    int main()
    {
    const int straka = 2;
    const int stolbes = 2; 
    const int kordinat = 2;
    char AnswerForM;
    char AnswerForV;
    int MasA[straka][stolbes];
    int VectorB[straka];
    int Solution[straka];


    srand(time(NULL));

    for(int i = 0; i < straka; i++)
    {
    for(int j = 0; j < stolbes; j++)
    {
    MasA[i][j] = rand()%100 + 1;
    }

    }


    //Иницализация векторов

    for(int i = 0; i < straka; i++) {VectorB[i] = rand()%50 + 1;}

    //Вывод матриц

    std::cout << "Pokazat ishodnoi matrisu? (najmite y ili Y): ";
    std::cin >> AnswerForM;

    if(AnswerForM == 'y' || AnswerForM == 'Y')
    {
    std::cout << "Ishodnoi matrix: \n";

    for(int i = 0; i < straka; i++)
    {
    for(int j = 0; j < stolbes; j++)
    {
    std::cout << MasA[i][j] << ' ';
    }

    std::cout << std::endl;
    }

    }

    std::cout << "Pokazat kordinaty vectorov?: ";
    std::cin >> AnswerForV;

    if( AnswerForV == 'y' || AnswerForV == 'Y')
    {
    for(int i = 0; i < straka; i++)
    {
    std::cout << VectorB[i] << ' ';
    }

    std::cout << "Vector: "<< KolMas << "\)" << std::endl;
    std::cout << std::endl;
    }

    //Расчеты. Умнажаем матрицу на вектор

    for(int j = 0; j < straka; j++)
    {
    Solution[j] = 0;
    for(int i = 0; i < stolbes; i++)
    Solution[j] += MasA[j][i]*VectorB[i];
    }

    //Вывод решения
    for(int i = 0; i < straka; i++)
    std::cout << i << ' ' << Solution[i] << std::endl;

    return 0;
    Да тут последовательно но... Хотя бы это)
    У меня тут только умножает матрицу на вектор. А по заданию мне надо их по 100. Ребята помогите. Всем заранее спс.
     
  2. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    А под распараллеливанием ты что подразумеваешь? Умножение в несколько потоков?
     
  3. proger2030

    proger2030 Гость

    Вот как создать 100 двухмерных и одномерных массивов с разными значениями ???
     
  4. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    100 двумерных массивов, размером N строк и M столбцов типа int:
    Код (C++):
    int A[100][N][M];
    100 одномерных массивов, размером N элементов типа int:
    Код (C++):
    int A[100][N];
    Добавлено: Заполняй их как угодно.
     
  5. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    погугли ОРС(Открытая Распараллеливающая Система), например.
    (ну это автоматическое распараллеливание, результат не очень, но зато максимально просто и быстро xD )
     
Загрузка...
Похожие Темы - Умножение Матриц На
  1. student22rus
    Ответов:
    1
    Просмотров:
    2.421
  2. Nekwil
    Ответов:
    1
    Просмотров:
    852
  3. Dantes95
    Ответов:
    0
    Просмотров:
    1.012
  4. kobrin13
    Ответов:
    0
    Просмотров:
    1.030
  5. FCDK
    Ответов:
    0
    Просмотров:
    1.260

Поделиться этой страницей