A-M baby
This commit is contained in:
parent
764da6cbbb
commit
db842d013d
19005 changed files with 197040 additions and 7 deletions
|
|
@ -0,0 +1,56 @@
|
|||
>>> from operator import mul
|
||||
>>> def matrixMul(m1, m2):
|
||||
return map(
|
||||
lambda row:
|
||||
map(
|
||||
lambda *column:
|
||||
sum(map(mul, row, column)),
|
||||
*m2),
|
||||
m1)
|
||||
|
||||
>>> def identity(size):
|
||||
size = range(size)
|
||||
return [[(i==j)*1 for i in size] for j in size]
|
||||
|
||||
>>> def matrixExp(m, pow):
|
||||
assert pow>=0 and int(pow)==pow, "Only non-negative, integer powers allowed"
|
||||
accumulator = identity(len(m))
|
||||
for i in range(pow):
|
||||
accumulator = matrixMul(accumulator, m)
|
||||
return accumulator
|
||||
|
||||
>>> def printtable(data):
|
||||
for row in data:
|
||||
print ' '.join('%-5s' % ('%s' % cell) for cell in row)
|
||||
|
||||
|
||||
>>> m = [[3,2], [2,1]]
|
||||
>>> for i in range(5):
|
||||
print '\n%i:' % i
|
||||
printtable( matrixExp(m, i) )
|
||||
|
||||
|
||||
|
||||
0:
|
||||
1 0
|
||||
0 1
|
||||
|
||||
1:
|
||||
3 2
|
||||
2 1
|
||||
|
||||
2:
|
||||
13 8
|
||||
8 5
|
||||
|
||||
3:
|
||||
55 34
|
||||
34 21
|
||||
|
||||
4:
|
||||
233 144
|
||||
144 89
|
||||
>>> printtable( matrixExp(m, 10) )
|
||||
1346269 832040
|
||||
832040 514229
|
||||
>>>
|
||||
Loading…
Add table
Add a link
Reference in a new issue