目錄
範例
輸出
首頁 後端開發 C++ 使用pthread在C/C++中實現矩陣的加法和減法

使用pthread在C/C++中實現矩陣的加法和減法

Aug 28, 2023 am 09:05 AM
矩陣 pthread 加法 減法

使用pthread在C/C++中實現矩陣的加法和減法

這裡我們將看到如何使用多執行緒環境執行矩陣加法和減法。 pthread用於在C或C 中同時執行多個執行緒。

有兩個矩陣A和B。每個矩陣的階數為(m x n)。每個執行緒將獲取每一行,並執行加法或減法。因此,對於 m 行,有 m 個不同的執行緒。

範例

#include<iostream>
#include <pthread.h>
#include <cstdlib>
#include <cstdint>
#define CORE 3
#define MAX 3
using namespace std;
int AMat[MAX][MAX] = {{10, 20, 30},
   {40, 50, 60},
   {70, 80, 50}
};
int BMat[MAX][MAX] = {{80, 60, 20},
   {30, 20, 15},
   {10, 14, 35}
};
pthread_t thread[CORE * 2];
int add[MAX][MAX], sub[MAX][MAX];
void* addMatrices(void* arg) {
   intptr_t core = (intptr_t)arg;
   // Each thread computes 1/3rd of matrix addition
   for (int i = core * MAX / 3; i < (core + 1) * MAX / 3; i++) {
      for (int j = 0; j < MAX; j++) {
         add[i][j] = AMat[i][j] + BMat[i][j];
      }
   }
}
void* subtraction(void* arg) {
   intptr_t core = (intptr_t)arg;
   // Each thread computes 1/3rd of matrix subtraction
   for (int i = core * MAX / 3; i < (core + 1) * MAX / 3; i++) {
      for (int j = 0; j < MAX; j++) {
         sub[i][j] = AMat[i][j] - BMat[i][j];
      }
   }
}
void display(){
   cout << "Matrix A: " << endl;
   for(int i = 0; i < MAX; i++) {
      for(int j = 0; j < MAX; j++) {
         cout << AMat[i][j] << " ";
      }
      cout << endl;
   }
   cout << "\nMatrix B: " << endl;
   for(int i = 0; i < MAX; i++) {
      for(int j = 0; j < MAX; j++) {
         cout << BMat[i][j] << " ";
      }
      cout << endl;
   }
}
void displayRes(){
   cout << "\nAddition: " << endl;
   for(int i = 0; i < MAX; i++) {
      for(int j = 0; j < MAX; j++) {
         cout << add[i][j] << " ";
      }
      cout << endl;
   }
   cout << "\nSubtraction: " << endl;
   for(int i = 0; i < MAX; i++) {
      for(int j = 0; j < MAX; j++) {
         cout << sub[i][j] << " ";
      }
      cout << endl;
   }
}
main() {
   display();
   int step = 0;
   for (int i = 0; i < CORE; i++) {
      pthread_create(&thread[i], NULL, &addMatrices, (void*)step);
      pthread_create(&thread[i + CORE], NULL, &subtraction, (void*)step);
      step++;
   }
   for (int i = 0; i < CORE * 2; i++) {
      pthread_join(thread[i], NULL);
   }
   displayRes();
}
登入後複製

輸出

Matrix A:
10 20 30
40 50 60
70 80 50
Matrix B:
80 60 20
30 20 15
10 14 35
Addition:
90 80 50
70 70 75
80 94 85
Subtraction:
-70 -40 10
10 30 45
60 66 15
登入後複製

以上是使用pthread在C/C++中實現矩陣的加法和減法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

探索人工智慧歷史與矩陣:人工智慧教學(二) 探索人工智慧歷史與矩陣:人工智慧教學(二) Nov 20, 2023 pm 05:25 PM

在本系列的第一篇文章中,我們討論了人工智慧、機器學習、深度學習、資料科學等領域的關聯和差異。我們也為整個系列將使用的程式語言、工具等做出了一些艱難的選擇。最後,我們也介紹了一點矩陣的知識。在本文中,我們將深入討論人工智慧的核心——矩陣。不過在此之前,我們先來了解一下人工智慧的歷史我們為什麼需要了解人工智慧的歷史呢?歷史上曾出現過多次人工智慧熱潮,但在許多情況下,對人工智慧潛力的巨大期望都未能達成。了解人工智慧的歷史,有助於讓我們看清這次人工智浪潮是會創造奇蹟,抑或只是另一個即將破滅的泡沫。我們

如何使用Python中的numpy計算矩陣或ndArray的行列式? 如何使用Python中的numpy計算矩陣或ndArray的行列式? Aug 18, 2023 pm 11:57 PM

在本文中,我們將學習如何使用Python中的numpy函式庫計算矩陣的行列式。矩陣的行列式是一個可以以緊湊形式表示矩陣的標量值。它是線性代數中一個有用的量,並且在物理學、工程學和計算機科學等各個領域都有多種應用。在本文中,我們首先將討論行列式的定義和性質。然後我們將學習如何使用numpy計算矩陣的行列式,並透過一些實例來看它在實踐中的應用。行列式的定義與性質Thedeterminantofamatrixisascalarvaluethatcanbeusedtodescribethepropertie

計算矩陣右對角線元素總和的Python程序 計算矩陣右對角線元素總和的Python程序 Aug 19, 2023 am 11:29 AM

一種受歡迎的通用程式語言是Python。它被應用於各種行業,包括桌面應用程式、網頁開發和機器學習。幸運的是,Python具有簡單易懂的文法,適合初學者使用。在本文中,我們將使用Python來計算矩陣的右對角線總和。什麼是矩陣?在數學中,我們使用一個矩形排列或矩陣,用於描述一個數學物件或其屬性,它是一個包含數字、符號或表達式的矩形數組或表格,這些數字、符號或表達式按行和列排列。例如−234512367574因此,這是一個有3行4列的矩陣,表示為3*4矩陣。現在,矩陣中有兩條對角線,即主對角線和次對

Python加法程式碼怎麼寫_Python加法程式碼寫法教程 Python加法程式碼怎麼寫_Python加法程式碼寫法教程 Apr 02, 2024 pm 06:16 PM

1.先開啟線上python編輯頁面。 2、然後在程式區輸入程式碼。 3.接著點選左上角的】運行【,輸入第一個加數,按下回車,輸入第二個加數。 4.最後按回車,得出兩個加數的和。這就是簡單的python加法程式碼。

Python程式使用多維數組相乘兩個矩陣 Python程式使用多維數組相乘兩個矩陣 Sep 11, 2023 pm 05:09 PM

矩陣是按行和列排列的一組數字。 m行n列的矩陣稱為mXn矩陣,m和n稱為其維度。矩陣是一個二維數組,在Python中使用列表或NumPy數組創建。一般來說,矩陣乘法可以透過將第一個矩陣的行乘以第二個矩陣的列來完成。這裡,第一矩陣的列數應等於第二矩陣的行數。輸入輸出場景假設我們有兩個矩陣A和B,這兩個矩陣的維度分別為2X3和3X2。相乘後得到的矩陣將有2行1列。 [b1,b2][a1,a2,a3]*[b3,b4]=[a1*b1+a2*b2+a3*a3][a4,a5,a6][b5,b6][a4*b2+a

不使用乘法、除法和取模運算子來進行兩個整數的除法 不使用乘法、除法和取模運算子來進行兩個整數的除法 Sep 21, 2023 pm 12:41 PM

在這個問題中,我們只需要將兩個整數相除,而不需要使用乘法、除法和取模運算子。儘管我們可以使用加法、乘法或位元操作。問題陳述指出我們將得到兩個整數x和y。在不使用乘法、除法或取模運算子的情況下,我們需要確定x除以y後的商數。範例輸入:x=15,y=5輸出:3輸入:x=10,y=4輸出:2輸入:x=-20,y=3輸出:-6方法方法1(使用簡單的數學)在這種方法中,我們將使用一個簡單的數學演算法。以下是我們要遵循的步驟的分步說明-我們將從被除數(即x)中不斷減去除數(即y),直到x大於或等於y。當y大於x時

C程式用於比較兩個矩陣是否相等 C程式用於比較兩個矩陣是否相等 Aug 31, 2023 pm 01:13 PM

使用者必須輸入兩個矩陣的順序以及兩個矩陣的元素。然後,比較這兩個矩陣。如果矩陣元素和大小都相等,則表示兩個矩陣相等。如果矩陣大小相等但元素相等不相等,則顯示矩陣可以比較,但不相等。如果大小和元素不匹配,則顯示矩陣無法比較。程式以下是C程序,用以比較兩個矩陣是否相等-#include<stdio.h>#include<conio.h>main(){  intA[10][10],B[10][10];  in

Oracle資料庫運算技巧:減法操作詳解 Oracle資料庫運算技巧:減法操作詳解 Mar 02, 2024 pm 06:15 PM

Oracle資料庫作為一種強大的關聯式資料庫管理系統,提供了豐富的運算操作來滿足使用者的需求。在日常的資料庫操作中,減法操作是一個常見且重要的運算,它能夠幫助我們實現資料的減法運算,從而得到我們所需的結果。本文將詳細討論Oracle資料庫中減法操作的相關技巧,並給出具體的程式碼範例,幫助讀者更好地理解並運用這項功能。 1.減法操作的基本概念在Oracle數據

See all articles