no globals[A] nemozem pouzit pretoze....
Asi musim viac osvetlit na com robim.
Robim Celularny Automat. Je to vlastne pole buniek. Kazda bunka ma
nejaky stav, ktory sa meni v kazdej iteracii na zaklade prechodovej
funkcie. No a prechodova funkcia meni stav bunky na zaklade okolia bunky
podla danych pravidiel CA. Okolie je bud
Mooreove okolie
xxx
xbx
xxx
alebo von Neumanove okolie
x
xbx
x
Toto vsak nie je podstatne. Podstatne je to, ze kvoli zrychleniu
vypoctov, kazda bunka je trieda, ktora vie svoj stav a obsahuje
referencie na svoje okolie. T.j. ma ako clensku premennu pole, v ktorom
su referencie na susedov bunky. Cize
vesmir = numpy.empty((x,y),dtype=object)
for x in xrange(x):
for y in xrange(y):
bunka = vesmir[x][y]
bunka.okolie = numpy.empty((3,3),dtype=object)
bunka.okolie[1][1] = vesmir[x-1][y-1]
bunka.okolie[1][2] = vesmir[x][y-1]
bunka.okolie[1][3] = vesmir[x+1][y-1]
bunka.okolie[2][1] = vesmir[x-1][y]
atd....
Samozrejme, ze u seba to mam napisane inak - toto je nazorne pre pochopenie.
Ako spravim to, ze ked zmenim napr. vesmir[5][5], aby sa mi zmeny
reflektovali aj do okoli vsetkych buniek, ktore maju bunku vesmir[5][5]
ako svoje okolie
Dufam, ze som to vysvetlil jasne. Ak nie pytajte sa upresnim.
balky
Jaroslav Pachola wrote:
Ahoj,
Cize este raz chcem aby sa B odkazovalo aj na nove pole s menom A. Da sa
to v pythone vyriesit?
balky
moznosti je nekolik. Napriklad se muzes uplne vykaslat na nejake permanentni B
a psat misto nej globals()['A']. Ale daleko lepsi je podle me udelat tridu ve
stylu:
class A(object):
DIMENSION = 1000
def __init__(self):
self.array = self.resetArray()
def resetArray(self):
self.array = numpy.zeros(self.DIMENSION)
a = A()
b = a
a.resetArray()
# b je v klidu
# nebo nejak tak
JP
_______________________________________________
Python mailing list
[email protected]
http://www.py.cz/mailman/listinfo/python
_______________________________________________
Python mailing list
[email protected]
http://www.py.cz/mailman/listinfo/python