pthread を使用して C/C++ で行列の加算と減算を実装する
ここでは、マルチスレッド環境を使用して行列の加算と減算を実行する方法を説明します。 pthread は、C または C++ で複数のスレッドを同時に実行するために使用されます。
2 つの行列 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 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック

このシリーズの最初の記事では、人工知能、機械学習、深層学習、データ サイエンスなどのつながりと違いについて説明しました。また、シリーズ全体で使用するプログラミング言語やツールなどについても、いくつかの難しい選択をしました。最後に、行列の知識も少し紹介しました。この記事では、人工知能の中核であるマトリックスについて詳しく説明します。その前に、まず人工知能の歴史を理解しましょう。なぜ人工知能の歴史を理解する必要があるのでしょうか?歴史上何度もAIブームはありましたが、多くの場合、AIの可能性に対する大きな期待は実現しませんでした。人工知能の歴史を理解すると、この人工知能の波が奇跡を起こすのか、それともはじけようとしている単なるバブルなのかを知ることができます。私たち

この記事では、Python の numpy ライブラリを使用して行列の行列式を計算する方法を学びます。行列の行列式は、行列をコンパクトな形式で表現できるスカラー値です。これは線形代数で有用な量であり、物理学、工学、コンピューターサイエンスなどのさまざまな分野で数多くの応用があります。この記事では、まず行列式の定義と性質について説明します。次に、numpy を使用して行列の行列式を計算する方法を学び、いくつかの例を通して実際にどのように使用されるかを見ていきます。マトリクスの行列式は、プロパティを記述するために使用できるスカラー値です。

人気のある汎用プログラミング言語は Python です。デスクトップ アプリケーション、Web 開発、機械学習など、さまざまな業界で使用されています。幸いなことに、Python には初心者に適したシンプルで理解しやすい構文があります。この記事では、Python を使用して行列の右対角の合計を計算します。マトリックスとは何ですか?数学では、数学的オブジェクトまたはそのプロパティを記述するために長方形の配列または行列を使用します。これは、行と列に配置された数値、記号、または式を含む長方形の配列または表です。例: -234512367574 したがって、これは 3 行 4 列の行列であり、3*4 行列として表されます。さて、行列には 2 つの対角線、主対角線と副対角線があります。

1. まずオンラインの Python 編集ページを開きます。 2. 次に、プログラムエリアにプログラムコードを入力します。 3. 次に、左上隅の「実行」をクリックし、最初の加数を入力し、Enter キーを押して、2 番目の加数を入力します。 4. 最後に Enter キーを押して、2 つの加数の合計を取得します。これは単純なPythonの追加コードです。

行列は、行と列に配置された一連の数値です。 m 行 n 列の行列は mXn 行列と呼ばれ、m と n はその次元と呼ばれます。行列は、リストまたは NumPy 配列を使用して Python で作成された 2 次元配列です。一般に、行列の乗算は、最初の行列の行と 2 番目の行列の列を乗算することで実行できます。ここで、最初の行列の列数は 2 番目の行列の行数と等しくなければなりません。入力シナリオと出力シナリオ 2 つの行列 A と B があるとします。これら 2 つの行列の次元は、それぞれ 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

この問題では、乗算、除算、および剰余演算子を使用せずに、2 つの整数を除算するだけで済みます。ただし、加算、乗算、またはビット演算を使用できます。問題文では、2 つの整数 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 より大きい場合

Oracle データベースは、強力なリレーショナル データベース管理システムとして、ユーザーのニーズを満たす豊富なコンピューティング操作を提供します。日々のデータベース操作において、減算演算は一般的かつ重要な演算であり、必要な結果を得るためにデータの減算演算を実現するのに役立ちます。この記事では、Oracle データベースでの減算演算に関連する手法について詳しく説明し、読者がこの関数をよりよく理解して使用できるように、具体的なコード例を示します。 1. Oracle データにおける減算演算の基本概念

ユーザーは、2 つの行列の順序と両方の行列の要素を入力する必要があります。次に、2 つの行列を比較します。行列の要素とサイズが両方とも等しい場合、2 つの行列は等しいと見なされます。行列のサイズは等しいが要素が等しくない場合、行列は比較可能ですが等しくないと示されます。サイズと要素が一致しない場合、表示マトリックスを比較することはできません。次のプログラムは C プログラムで、2 つの行列が等しいかどうかを比較するために使用されます。#include<stdio.h>#include<conio.h>main(){ intA[10][10],B[10][10] ; で
