pole=[] f=open('pole.txt','r') for line in f: pole.append(list(map(int, line.split())))
printMatrix
, která vypíše matici zadanou 2D polem
multiVecMat(v,m)
, která vypočte součin vektoru $v$ a matice $m$.
None
.
m=[[0,0,1],[0,1,0],[1,0,0]] v=[2, 4, 6]
Implementujte následující úlohy:
Příklady:
python3 bestMatch.py velka.txt mala.txt
Testovat můžete na jednoduchých příkladech, kde se matice $W$ celá nachází v matici $A$ (a minimální hodnota metriky je 0), například
'velka.txt'
1 2 1 2 3 8 1 2 1 2 3 8 1 2 4 5 6 8 1 2 7 8 9 8'mala.txt'
1 2 3 4 5 6 7 8 9
Výsledek je souřadnice číslice 5
, tj.
2 3
Pokud soubory 'velka.txt' a 'mala.txt' obsahují:
'velka.txt'
0.658824 0.603922 0.639216 0.462745 0.376471 0.380392 0.345098 0.607843 0.545098 0.572549 0.521569 0.376471 0.345098 0.333333 0.576471 0.47451 0.501961 0.490196 0.384314 0.286275 0.333333 0.52549 0.529412 0.443137 0.384314 0.423529 0.247059 0.286275
'mala.txt'
0.576471 0.47451 0.501961 0.52549 0.529412 0.443137 0.52549 0.541176 0.419608
Výsledek:
2 1
'velka.txt'
0.709804 0.698039 0.666667 0.670588 0.627451 0.635294 0.686275 0.639216 0.596078 0.737255 0.772549 0.745098 0.623529 0.52549 0.541176 0.419608 0.756863 0.74902 0.737255 0.745098 0.745098 0.658824 0.639216 0.701961 0.733333 0.682353 0.67451 0.635294 0.698039 0.607843 0.427451 0.392157 0.733333 0.694118 0.717647 0.729412 0.729412 0.764706 0.756863 0.705882 0.705882 0.721569 0.701961 0.678431 0.647059 0.603922 0.462745 0.4 0.705882 0.701961 0.690196 0.611765 0.6 0.596078 0.588235 0.615686 0.584314 0.6 0.537255 0.576471 0.588235 0.619608 0.588235 0.482353 0.705882 0.54902 0.494118 0.462745 0.45098 0.443137 0.454902 0.505882 0.513726 0.47451 0.415686 0.443137 0.427451 0.482353 0.509804 0.458824 0.509804 0.403922 0.45098 0.517647 0.533333 0.533333 0.486275 0.47451 0.556863 0.623529 0.521569 0.447059 0.384314 0.329412 0.333333 0.337255
'mala.txt'
0.509804 0.403922 0.45098 0.411765 0.470588 0.458824 0.419608 0.407843 0.447059
Výsledek je:
4 11
Praktická motivace: hledáním nejlepšího překryvu matice lze (velmi zjednodušeně) hledat např. obrázek v obrázku. Data pro domácí úlohu jsou generována z tohoto obrázku:
argv[1]
). Tento soubor kóduje stav šachovnice po tahu bílého. Program zkontroluje, zda bílý dává černému mat, šach, nebo garde.
figura | bílý | černý |
---|---|---|
král | 1 | -1 |
dáma | 2 | -2 |
věž | 3 | -3 |
střelec | 4 | -4 |
jezdec | 5 | -5 |
pěšec | 6 | -6 |
volné pole | 0 | 0 |
Vstup obsah souboru, zdaného jako vstupní argument:
-3 0 -4 -2 0 -1 -5 -3 -6 -6 -6 0 0 0 -6 -6 0 0 -5 4 0 0 0 0 0 0 0 -6 0 0 0 2 0 0 0 6 0 0 0 0 0 0 5 0 0 0 0 0 6 6 6 0 0 0 6 6 3 0 0 0 0 3 1 0
Výstup:
MAT