Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรมสำหรับ Markov Matrix ใน C++


ให้เมทริกซ์ M[r][c] ที่มี 'r' แถว และ 'c' คอลัมน์ เราต้องตรวจสอบว่าเป็น Markov Matrix หรือไม่ หากเป็นพิมพ์ "It is a Markov matrix" ไม่เป็นพิมพ์ "it's not an Markov matrix"

Markov Matrix

Markov Matrix คืออะไร? เมทริกซ์ M จะเป็น Markov Matrix ก็ต่อเมื่อผลรวมของแต่ละแถวเท่ากับ 1 เท่านั้น

ตัวอย่าง −

$$\begin{bmatrix}0.2 & 0.3 & 0.5 \\0.1 & 0.7 & 0.2 \\0.4 & 0.5 & 0.1 \\\end{bmatrix}\\$$

ผลรวมแต่ละแถว −

1st row sum = 0.2+0.3+0.5 = 1.0 2nd row sum = 0.1+0.7+0.2 = 1.0 3rd row sum = 0.4+0.5+0.1 = 1.0

ทุกแถวมีผลรวม 1.0 ดังนั้นเป็น Markov Matrix

ตัวอย่าง

Input: m[][] = { {0.2, 0.3, 0.5} ,   {0.1, 0.7, 0.2},   {0.4, 0.5, 0.1}} Output: It is a Markov matrix Input: m[][] = {   {0, 0, 1} ,   {0, 0.7, 0.3},   {0.5, 0.5, 0}} Output: It is a Markov matrix

วิธีแก้

สร้างอาร์เรย์ 1 มิติเก็บผลรวมแต่ละแถว แล้วตรวจสอบว่าทุกค่าเป็น 1 หรือไม่

อัลกอริทึม

Start Step 1 -> Define macro as #define n 3 Step 2 -> declare function to check for markov matrix   bool check(double arr[][n])     Loop For int i = 0 and i  In main ()   Declare double arr[3][3] = { { 0, 0, 1 },     { 0.5, 0, 0.5 },     { 0.9, 0, 0.1 } }   If (check(arr))     Print its a markov matrix   Else     Print its not a markov matrix Stop

ตัวอย่าง

#include <iostream> using namespace std; #define n 3 //check for markov matrix bool check(double arr[][n]){   for (int i = 0; i 

ผลลัพธ์

its a markov matrix