Generowanie paproci Barnsleya i smoka Heighwaya
Choć niektóre fraktale wydają się bardzo skomplikowane, ich konstrukcję można opisać w dość prosty sposób dzięki funkcjom IFSIFS. Przyjrzyjmy się bliżej dwóm przykładom takich fraktali.
Smok Heighwaya
Z historią tego fraktala związanych jest wiele nazwisk. Pracowali nad nim naukowcy z NASA: John Heighway, Bruce Banks i William Harter, a opisany i spopularyzowany zastał przez Martina Gardnera w roku 1967. Był także przedmiotem badań Chandlera Davisa oraz Donalda Knutha (znanego z algorytmu Knutha-Morrisa‑Pratta), którzy odkryli wiele jego cech.
Generowanie tego fraktala opiera się na wykorzystaniu dwóch par funkcji, zgodnie z którymi obliczamy współrzędne kolejnych punktów. Te pary funkcji to:
Funkcji tych należy użyć w sposób losowy w równych proporcjach. Jest to metoda Monte CarloMonte Carlo, polegająca na losowaniu dostatecznej liczby danych w taki sposób, że po ich zestawieniu otrzymujemy pewne przybliżenie modelowanego zjawiska. Punktem startowym jest punkt .
Każdy wygenerowany w ten sposób punkt rysujemy w układzie współrzędnych – kształt, który otrzymamy, jest nazywany smokiem Heighwaya. Im więcej punktów wygenerujemy, tym dokładniejszy będzie uzyskany kształt.
Wszystkie przedstawione kroki możemy zapisać za pomocą następującego pseudokodu:
Zwróćmy uwagę na fakt, że potrzebna jest nam kopia zmiennych x, aby podczas generowania zmiennej y (w linijce 16. oraz 19.) nie użyć nowej wartości nadanej zmiennej x.

Napisz program w języku C++, który wygeneruje fraktal smok Heighwaya.
Paproć Barnsleya
Odkrywcą tego fraktala jest Michael Barnsley, który opisał go w książce Fractals Everywhere. Publikacja ta stanowi obszerne kompendium wiedzy na temat fraktali, szczególnie jednak traktuje o generowaniu fraktali z wykorzystaniem funkcji IFS. Autor przedstawił w niej też smoka Heighwaya.
Stworzona przez Barnsleya definicja paproci opiera się na czterech przekształceniach afinicznych. Ponieważ jednak posługiwał się on skomplikowaną terminologią matematyczną (związaną z rachunkiem macierzy, funkcjami wielu zmiennych, liczbami zespolonymi oraz krzywymi hiperbolicznymi), przedstawiony przez nas sposób generowania paproci Barnsleya nie jest oryginalnym zapisem stosowanym przez autora.
Podobnie jak miało to miejsce w przypadku smoka Heighwaya, generowanie tego fraktala opiera się na wykorzystaniu pewnej liczby par funkcji, które należy stosować losowo w określonych proporcjach. W tym wypadku mamy cztery pary funkcji:
Funkcji tych należy użyć losowo według następujących proporcji:
Punktem startowym jest punkt .
Pseudokod, którym posłużymy się podczas pisania programu generującego paproć Barnsleya, może wyglądać następująco:
W wyniku tworzenia paproci Barnsleya według pseudokodu możemy uzyskać na przykład taki kształt:

Napisz program w języku C++, który wygeneruje fraktal paproć Barnsleya.
Słownik
(z ang. iterated function system – system funkcji iterowanych) funkcje, które pozwalają generować konstrukcje samopodobne
metoda modelowania zjawisk fizycznych lub matematycznych za pomocą losowania danych w określony sposób tak, aby ich zestawienie produkowało przybliżenie oczekiwanego rezultatu