У овом програму ћете научити да множите две матрице помоћу функције у Котлину.
Да би дошло до множења матрице, број колона прве матрице мора бити једнак броју редова друге матрице. У нашем примеру, тј
ц1 = р2
Такође, коначна матрица производа је величине r1 x c2
, тј
производ (р1) (ц2)
Такође можете помножити две матрице без функција.
Пример: Програмирати множење две матрице помоћу функције
fun main(args: Array) ( val r1 = 2 val c1 = 3 val r2 = 3 val c2 = 2 val firstMatrix = arrayOf(intArrayOf(3, -2, 5), intArrayOf(3, 0, 4)) val secondMatrix = arrayOf(intArrayOf(2, 3), intArrayOf(-9, 0), intArrayOf(0, 4)) // Mutliplying Two matrices val product = multiplyMatrices(firstMatrix, secondMatrix, r1, c1, c2) // Displaying the result displayProduct(product) ) fun multiplyMatrices(firstMatrix: Array, secondMatrix: Array, r1: Int, c1: Int, c2: Int): Array ( val product = Array(r1) ( IntArray(c2) ) for (i in 0… r1 - 1) ( for (j in 0… c2 - 1) ( for (k in 0… c1 - 1) ( product(i)(j) += firstMatrix(i)(k) * secondMatrix(k)(j) ) ) ) return product ) fun displayProduct(product: Array) ( println("Product of two matrices is: ") for (row in product) ( for (column in row) ( print("$column ") ) println() ) )
Када покренете програм, излаз ће бити:
Збир две матрице је: 24 29 6 25
У горњем програму постоје две функције:
multiplyMatrices()
која множи две задате матрице и враћа матрицу производаdisplayProduct()
који на екрану приказује излаз матрице производа.
Множење се одвија као:
|. | - (а 11 кб 11 ) + (а 12 кб 21 ) + (а 13 кб 31 ) (а 11 кб 12 ) + (а 12 кб 22 ) + (а 13 кб 32 ) - | | _ (а 21 кб 11 ) + (а 22 кб 21 ) + (а 23 кб 31 ) (а 21 кб 12 ) + (а 22 кб 22 ) + (а 23 кб 32) _ |
У нашем примеру се то одвија као:
|. | - (3 к 2) + (-2 к -9) + (5 к 0) = 24 (3 к 3) + (-2 к 0) + (5 к 4) = 29 - | | _ (3 к 2) + (0 к -9) + (4 к 0) = 6 (3 к 3) + (0 к 0) + (4 к 4) = 25 _ |
Ево еквивалентног Јава кода: Јава програм за множење две матрице помоћу функције