Gra w chaos: Różnice pomiędzy wersjami

Dodane 832 bajty ,  14 lat temu
kod zrodlowy
[wersja nieprzejrzana][wersja nieprzejrzana]
(Bardziej ogólnie (na podstawie en wiki))
(kod zrodlowy)
[[Grafika:Fractal fern1.jpg|right|thumb|180px|Liść paproci wygenerowany przy pomocy gry w chaos]]
Bardziej ogólnie, '''gra w chaos''' to sposób generowania [[atraktor]]a lub [[Punkt stały|punktu stałego]] dowolnego [[IFS (geometria fraktalna)|systemu funkcji iterowanych]]. Zaczynając od pewnego punktu x<sub>0</sub> kolejne iteracje są dane przy pomocy wzoru x<sub>n+1</sub> = f<sup>m</sup>(x<sub>n</sub>), gdzie f<sup>m</sup>(x) jest jedną z funkcji iterowanych, wybieraną niezalężnie i losowo dla każdej iteracji. Iteracje zbiegają do punktu stałego systemu funkcji iterowanych. Jeżeli wartość początkowa x<sub>0</sub> należy do atraktora systemu funkcji iterowanych, wówczas wszystkie punkty x<sub>n</sub> również należą do tego atraktora i z [[prawdopodobieństwo|prawdopodobieństwem]] 1 tworzą w nim [[zbiór gęsty]].
 
== Przykład ==
 
Poniższy przykład (w języku Python) generuje trójkąt Sierpińskiego przy użyciu gry w chaos, korzystając z biblioteki pygame.
 
<source lang="python">
 
from random import randint as rnd
sqr = lambda a:a*a
import pygame
scr = pygame.display.set_mode([501, 501])
 
pts = [complex(0, 500), complex(500, 500), complex(250, 0)]
colours = [(255, 0, 0), (0, 255, 0), (0, 0, 255)]
 
gameind = rnd(0, 2)
gamept = pts[gameind]
 
for i in range(100000):
pygame.draw.rect(scr, colours[gameind], [gamept.real, gamept.imag, 2, 2])
gameind = rnd(0, 2)
newpt = pts[gameind]
gamept += newpt
gamept /= 2
 
pygame.display.flip()
while True:
key = pygame.event.poll()
if key.type == pygame.KEYDOWN and key.key == pygame.K_ESCAPE:
pygame.quit()
break
pygame.time.delay(100)
 
</source>
 
== Zobacz też ==
200

edycji