1. Уважаемые участники и гости, 19 октября codeby будет работать в режиме "Только чтение". Регистрация новых участников будет закрыта. 20 октября портал продолжит работу в прежнем режиме.

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

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

  1. proger2030

    proger2030 Гость

    Репутация:
    0
    Задание
    Выполнить задачу распараллеливания алгоритма (на любом языке программирования.)
    Дано 100 матриц и 100 векторов, умножение каждой матрицы на каждый вектор.
    Пока решил так:
    Код:
    #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

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

    proger2030 Гость

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

    lazybiz Well-Known Member

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

    rrrFer Гость

    Репутация:
    0
    погугли ОРС(Открытая Распараллеливающая Система), например.
    (ну это автоматическое распараллеливание, результат не очень, но зато максимально просто и быстро xD )
     
Загрузка...
Похожие Темы - Умножение Матриц На
  1. student22rus
    Ответов:
    1
    Просмотров:
    3.328
  2. eSkry
    Ответов:
    0
    Просмотров:
    38
  3. GriZzly
    Ответов:
    0
    Просмотров:
    151
  4. Nekwil
    Ответов:
    1
    Просмотров:
    1.319
  5. Dantes95
    Ответов:
    0
    Просмотров:
    1.456

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