mirror of
https://github.com/DeaDvey/mathgenerator.git
synced 2025-11-28 14:35:23 +01:00
complete restructure of the project. minor tweaks
This commit is contained in:
50
mathgenerator/funcs/matrixMultiplicationFunc.py
Normal file
50
mathgenerator/funcs/matrixMultiplicationFunc.py
Normal file
@@ -0,0 +1,50 @@
|
||||
from .__init__ import *
|
||||
|
||||
|
||||
def matrixMultiplicationFunc(maxVal=100):
|
||||
m = random.randint(2, 10)
|
||||
n = random.randint(2, 10)
|
||||
k = random.randint(2, 10)
|
||||
|
||||
# generate matrices a and b
|
||||
a = []
|
||||
for r in range(m):
|
||||
a.append([])
|
||||
for c in range(n):
|
||||
a[r].append(random.randint(-maxVal, maxVal))
|
||||
b = []
|
||||
for r in range(n):
|
||||
b.append([])
|
||||
for c in range(k):
|
||||
b[r].append(random.randint(-maxVal, maxVal))
|
||||
|
||||
res = []
|
||||
a_string = matrixMultiplicationFuncHelper(a)
|
||||
b_string = matrixMultiplicationFuncHelper(b)
|
||||
|
||||
for r in range(m):
|
||||
res.append([])
|
||||
|
||||
for c in range(k):
|
||||
temp = 0
|
||||
|
||||
for t in range(n):
|
||||
temp += a[r][t] * b[t][c]
|
||||
res[r].append(temp)
|
||||
|
||||
problem = f"Multiply \n{a_string}\n and \n\n{b_string}" # consider using a, b instead of a_string, b_string if the problem doesn't look right
|
||||
solution = matrixMultiplicationFuncHelper(res)
|
||||
return problem, solution
|
||||
|
||||
def matrixMultiplicationFuncHelper(inp):
|
||||
m = len(inp)
|
||||
n = len(inp[0])
|
||||
|
||||
string = ""
|
||||
for i in range(m):
|
||||
for j in range(n):
|
||||
string += f"{inp[i][j]: 6d}"
|
||||
string += " "
|
||||
string += "\n"
|
||||
|
||||
return string
|
||||
Reference in New Issue
Block a user