Matrice nulla
def nulla(n):
m = []
for r in range(n):
riga = []
for c in range(n):
riga.append(0)
m.append(riga)
return m
def test_nulla(m):
n = len(m)
for r in range(n):
for c in range(n):
if(m[r][c] != 0):
return False
return True
Matrice identità
def identità(n):
m = []
for r in range(n):
riga = []
for c in range(n):
if(r == c):
riga.append(1)
else:
riga.append(0)
m.append(riga)
return m
def test_identità(m):
n = len(m)
for r in range(n):
for c in range(n):
if(r == c) and (m[r][c] != 1):
return False
if(r != c) and (m[r][c] != 0):
return False
return True
Matrice diagonale
Sulla diagonale principale carica numeri pseudocasuali in [0, 1)
def diagonale(n):
m = []
for r in range(n):
riga = []
for c in range(n):
if(r == c):
riga.append(random.random())
else:
riga.append(0)
m.append(riga)
return m
def test_diagonale(m):
n = len(m)
for r in range(n):
for c in range(n):
if(r != c) and (m[r][c] != 0):
return False
return True
Matrice triangolare superiore
Carica numeri pseudocasuali in [0, 1)
def triangolare_sup(n):
m = []
for r in range(n):
riga = []
for c in range(n):
if(r <= c):
riga.append(random.random())
else:
riga.append(0)
m.append(riga)
return m
def test_triangolare_sup(m):
n = len(m)
for r in range(n):
for c in range(n):
if(r > c) and (m[r][c] != 0):
return False
return True
Meglio… a partire dalla 2° riga, fino alla colonna precedente…
def test_triangolare_sup(m):
n = len(m)
for r in range(1, n):
for c in range(0, r):
if (m[r][c] != 0):
return False
return True
Matrice simmetrica
Carica numeri pseudocasuali in [0, 1)
def simmetrica(n):
m = []
for r in range(n):
riga = []
for c in range(n):
if(r <= c):
riga.append(random.random())
else:
riga.append(m[c][r])
m.append(riga)
return m
def test_simmetrica(m):
n = len(m)
for r in range(n):
for c in range(n):
if(m[r][c] != m[c][r]):
return False
return True
Meglio… a partire dalla colonna successiva…
def test_simmetrica(m):
n = len(m)
for r in range(n):
for c in range(r+1, n):
if (m[r][c] != m[c][r]):
return False
return True