[python] Referencia

balky vbalko na gmail.com
Pátek Únor 3 13:38:09 CET 2006


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
>Python na py.cz
>http://www.py.cz/mailman/listinfo/python
>
>  
>




Další informace o konferenci Python