กำหนดเมทริกซ์ M[r][c] ด้วยจำนวนแถว 'r' และจำนวนคอลัมน์ 'c' เราต้องตรวจสอบว่าเมทริกซ์ที่กำหนดเป็นเมทริกซ์ Markov หรือไม่ หากเมทริกซ์อินพุตคือเมทริกซ์มาร์กอฟ ให้พิมพ์เอาต์พุต "มันคือเมทริกซ์มาร์คอฟ" และ "ไม่ใช่เมทริกซ์มาร์คอฟ" หากไม่ใช่เมทริกซ์มาร์คอฟ
มาร์คอฟ เมทริกซ์
ตอนนี้ Markov Matrix คืออะไร เมทริกซ์ M คือเมทริกซ์มาร์กอฟก็ต่อเมื่อผลรวมของแต่ละแถวเท่ากับ 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 ดังนั้นเมทริกซ์ด้านบนจึงเป็นเมทริกซ์มาร์กอฟ
ตัวอย่าง
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 หรือไม่ ถ้า 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 <n and i++
Declare double sum = 0
Loop For int j = 0 and j < n and j++
Set sum = sum + arr[i][j]
If (sum != 1)
return false
End
End
Return true
Step 3 -> 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 <n; i++){
double sum = 0;
for (int j = 0; j < n; j++)
sum = sum + arr[i][j];
if (sum != 1)
return false;
}
return true;
}
int main(){
double arr[3][3] = { { 0, 0, 1 },
{ 0.5, 0, 0.5 },
{ 0.9, 0, 0.1 } };
if (check(arr))
cout << "its a markov matrix ";
else
cout << "its not a markov matrix ";
} ผลลัพธ์
its a markov matrix