Przybliżamy liczbę $\pi$
✓
Metoda Monte Carlo Ulama.
Rozważmy doświadczenie:
Losujemy punkt o współrzędnych rzeczywistych wewnątrz kwadratu o boku 2. Jakie jest prawdopodobieństwo, że wylosowany punkt znajdzie się wewnątrz koła wpisanego w ten kwadrat?
A – wylosowanie punktu wewnątrz koła
Jest to jednoczesnie częstość wystąpienia zdarzenia A tzn. jeśli powtórzymy nasze doświadczenie wielokrotnie, to stosunek liczby wystąpień zdarzenia A do liczby wysztkich powtórzeń oscyluje wokół liczby .
Napisz program, który zasymuluje częstość wystąpienia naszego zdarzenia A i na tej podstawie przybliżaj liczbę . Dokładność przybliżenia powinna zależeć od liczby powtórzeń doświadczenia.
Wskazówka:
Okrąg jest to zbiór punktów równoodległych od środka okręgu.
Z twierdzenia Pitagora mamy zależność: .
– równanie okręgu o środku w punkcie (0,0) i promieniu r.
– nierówność koła o środku w punkcie (0,0) i promieniu r.
Uwaga:
Jeśli będziesz losował współrzędne punktów spośród liczb całkowitych, rozwiążesz inne zadanie.
W tym przypadku łatwo zauważyć, że:
zachęcam do eksperymentów 🙂
Rozważmy doświadczenie:
Losujemy punkt o współrzędnych rzeczywistych wewnątrz kwadratu o boku 2. Jakie jest prawdopodobieństwo, że wylosowany punkt znajdzie się wewnątrz koła wpisanego w ten kwadrat?
A – wylosowanie punktu wewnątrz koła
Jest to jednoczesnie częstość wystąpienia zdarzenia A tzn. jeśli powtórzymy nasze doświadczenie wielokrotnie, to stosunek liczby wystąpień zdarzenia A do liczby wysztkich powtórzeń oscyluje wokół liczby .
Napisz program, który zasymuluje częstość wystąpienia naszego zdarzenia A i na tej podstawie przybliżaj liczbę . Dokładność przybliżenia powinna zależeć od liczby powtórzeń doświadczenia.
Wskazówka:
Okrąg jest to zbiór punktów równoodległych od środka okręgu.
Z twierdzenia Pitagora mamy zależność: .
– równanie okręgu o środku w punkcie (0,0) i promieniu r.
– nierówność koła o środku w punkcie (0,0) i promieniu r.
Uwaga:
Jeśli będziesz losował współrzędne punktów spośród liczb całkowitych, rozwiążesz inne zadanie.
W tym przypadku łatwo zauważyć, że:
zachęcam do eksperymentów 🙂
Przybliżamy $\sqrt{2}$
✓
Jeśli znasz wzory na pierwiastki równania kwadratowego, łatwo uzasadnisz, że:
Na podstawie tego wzoru napisz program, który przybliża pierwiastek z 2 z dokładnością do 15 miejsc po przecinku.
Zad. 13 b
Na podstawie obserwacji współczynników równania kwadratowego spróbuj wymyślić analogiczny wzór na pierwiastek z 3 i napisz odpowiedni program przybliżający pierwiastek z 3 z dokładnością podaną przez użytkownika.
Na podstawie tego wzoru napisz program, który przybliża pierwiastek z 2 z dokładnością do 15 miejsc po przecinku.
Zad. 13 b
Na podstawie obserwacji współczynników równania kwadratowego spróbuj wymyślić analogiczny wzór na pierwiastek z 3 i napisz odpowiedni program przybliżający pierwiastek z 3 z dokładnością podaną przez użytkownika.
Wyróżniona liczba
✓
Mamy tablicę liczb całkowitych o wymiarach 40×10. Separatorem liczb jest tabulacja.
Przykład:
Dla tablicy liczb:
numer kolumny o maksymalnej sumie: 1
Wyrożniona liczba: 3
Uwaga:
Wiersze i kolumny numerujemy od 0
1441 2117 634 171 4609 3033 827 2328 2732 9314 7847 6808 3120 3409 5147 8092 2701 5731 571 2112 2233 6884 2462 5324 6924 1037 7277 7560 8085 4875 1184 851 2486 7023 9251 8793 2351 8879 662 5585 8293 3194 7794 1139 9930 4990 3845 4388 2735 456 981 1504 2689 4130 2886 4832 2037 908 7104 7681 517 2935 9712 4022 6254 3646 2579 955 8197 1917 5872 1206 3560 3075 8175 3087 1069 685 5960 6328 6411 28 2301 8 5629 7569 8975 3291 7340 1448 2987 2238 9231 3222 9126 5679 9795 5638 8240 1318 4975 2665 8460 3368 9483 4340 9337 6740 994 2166 410 6983 71 4120 5770 8488 5788 9801 4642 1353 6425 1112 1388 545 8635 778 5184 6509 9634 7327 9009 6071 6010 1554 2817 687 6568 7844 2564 5016 1497 5958 107 9128 5975 7816 6873 8714 7328 8626 2773 859 5337 2301 283 2636 8920 6688 6831 1297 3652 4913 9260 2081 5699 4685 9465 3839 8968 9536 8393 7482 6123 4464 6591 7585 1788 4721 727 1530 720 8008 1907 5080 3360 6902 4183 6574 7417 2716 1621 1863 2218 858 4167 7845 1621 2585 6827 5279 5519 6367 9600 1076 1910 2553 1096 767 1235 7563 1193 1462 610 1220 9202 8361 6870 5934 7871 8791 4708 9075 8034 4677 2818 2480 3879 6982 1958 8017 5241 3422 2890 7606 4990 971 9758 7203 998 4143 1381 2316 3102 8325 737 8177 6457 8190 2864 858 2217 5787 969 2084 4769 9163 899 1988 3456 3313 5698 5331 1956 5880 5420 2763 7203 7440 3865 1237 5051 1387 4683 1767 1381 8201 8750 5779 697 7822 6301 6685 219 9928 4813 6614 8502 2714 7859 8668 9599 5676 1589 6232 2415 178 7388 2916 2413 4521 7407 2473 8391 9109 5505 6302 3468 953 7498 8517 4350 3221 8555 7118 1527 1860 4356 9464 250 3647 1803 2398 8126 7306 3364 7743 6629 3732 676 4896 874 2471 7371 6490 683 2874 7782 1967 4053 7126 8443 4659 993 3870 1651 1162 6731 6088 6412 1182 3461 1049 4980 7980 8814 3031 7358 3342 7663 3747 4177 7763 5487 3242 3178 4086 5625 6761 4335 8105 6522 2778 183 2550 2173 6254 2757 6019 2658 7490 9456 3428 3088 1174 3378 6760 4335 8256 8288 1804 8448 801 3682 4793 12404 3851 6312 9996 4171 6663Napisz program, który w powyższej tablicy liczb wyznaczy najbliższy numer wiersza o maksymalnej sumie, najbliższy numer kolumny o maksymalnej sumie, a następnie wypisze wyróżnioną liczbę występującą w tablicy na przecięciu wyznaczonych wartości.
Przykład:
Dla tablicy liczb:
3 4 1 3 4 4 4 3 6numer wiersza o maksymalnej sumie: 2
numer kolumny o maksymalnej sumie: 1
Wyrożniona liczba: 3
Uwaga:
Wiersze i kolumny numerujemy od 0
Operacje na słowach (pliki)
✓
Pobierz plik z listą słów ze strony SJP (UTF-8, ustawić kodowanie) (sjp.pl) oraz wykonaj następujące polecenia:
- Wypisz na ekranie wszystkie słowa zaczynające się na 'la’
- Wypisz wszystkie 3-literowe słowa
- Wypisz wszystkie słowa, które zaczynają się na literę f i kończą się na literę f.
- Wypisz wszystkie palindromy
- Wypisz wszystkie najdłuższe słowa, które zaczynają się na literę 'f’
Anagramy
✓
Pobierz plik z listą słów ze strony SJP (UTF-8, ustawić kodowanie) (sjp.pl) oraz wykonaj zadanie:
Napisz program, który pobierze od użytkownika słowo i wypisze ze słownika języka polskiego wszystkie anagramy tego słowa z wyjątkiem tego słowa.
Przykład 1
Wejśœcie:
drzewo
Wyjście:
dworze
zdrowe
Przykład 2
Wejście:
granatowy
Wyjście:
gratowany
wytargano
targowany
Napisz program, który pobierze od użytkownika słowo i wypisze ze słownika języka polskiego wszystkie anagramy tego słowa z wyjątkiem tego słowa.
Przykład 1
Wejśœcie:
drzewo
Wyjście:
dworze
zdrowe
Przykład 2
Wejście:
granatowy
Wyjście:
gratowany
wytargano
targowany
Odmiany słów – krojenie plików (split)
✓
Pobierz plik z listą słów w języku polskim wraz z ich odmianami ze strony SJP (UTF-8) (sjp.pl) oraz wykonaj wykonaj następujące zadanie.
Napisz program, który na wejœściu pobiera od użytkownika dowolne słowo w języku polskim, a na wyjœściu wypisuje wszystkie możliwe odmiany tego słowa po spacji. W przypadku braku podanego słowa program powinien wypisać stosowny komunikat.
Przykład
wejœście:
Podaj słowo: cudzysłów
wyjœście:
cudzysłowach cudzysłowami cudzysłowem cudzysłowie cudzysłowom cudzysłowowi cudzysłowów cudzysłowu cudzysłowy
Czy chesz powtórzyć (T)ak/(N)ie:
Zadanie
Spróbuj przyspieszyć działanie swojego programu stosując wyszukiwanie binarne.
Napisz program, który na wejœściu pobiera od użytkownika dowolne słowo w języku polskim, a na wyjœściu wypisuje wszystkie możliwe odmiany tego słowa po spacji. W przypadku braku podanego słowa program powinien wypisać stosowny komunikat.
Przykład
wejœście:
Podaj słowo: cudzysłów
wyjœście:
cudzysłowach cudzysłowami cudzysłowem cudzysłowie cudzysłowom cudzysłowowi cudzysłowów cudzysłowu cudzysłowy
Czy chesz powtórzyć (T)ak/(N)ie:
Zadanie
Spróbuj przyspieszyć działanie swojego programu stosując wyszukiwanie binarne.
Zamiana na rzymskie (słownik)
✓
Napisz program, który dokonuje konwersji liczb arabskich na rzymskie. Na wejściu pobieramy liczbę całkowitą 1 =< a <= 3999
Przykład:
Wejście:
1125
Wyjście:
MCXXV
Przykład:
Wejście:
1125
Wyjście:
MCXXV
Rekordy – oceny (lista)
✓
Napisz program do przechowywania listy ocen uczniów ze sprawdzianu. Każdy uczeń powinien zwierać przynajmniej trzy pola: Nazwisko, Imię oraz ocena. Pola sformatuj odpowiednio: 14s 10s 7.1f. Następnie wykonaj polecenia:
- Wypisz uczniów, którzy nie zaliczyli sprawdzianu
- Oblicz średnią ocen wszystkich uczniów
- Oblicz medianę ocen wszystkich uczniów
- Znajdź ucznia/ów z najwyższą oraz najniższą oceną.
Zapis słowny liczby ( stringi, krotki)
✓
Napisz program, który zamiena liczbę na jej zapis słowny. Na wejściu pobieramy liczbę całkowitą 0 =< a <= 1060.
System nazw.
Na wyjściu dostajemy zapis słowny tej liczby zgodny z zasadami pisowni polskiej.
Przykład:
Wejście:
112
Wyjście:
sto dwanaście
Przykład 2
Wejście:
1023350000089867654334098001911200
Wyjście:
jeden septylion dwadzieścia trzy kwintyliardy trzysta pięćdziesiąt kwintylionów osiemdziesiąt dziewięć kwadrylionów osiemset sześćdziesiąt siedem tryliardów sześćset pięćdziesiąt cztery tryliony trzysta trzydzieści cztery biliony dziewięćdziesiąt osiem miliardów jeden milion dziewięćset jedenaście tysięcy dwieście
System nazw.
Na wyjściu dostajemy zapis słowny tej liczby zgodny z zasadami pisowni polskiej.
Przykład:
Wejście:
112
Wyjście:
sto dwanaście
Przykład 2
Wejście:
1023350000089867654334098001911200
Wyjście:
jeden septylion dwadzieścia trzy kwintyliardy trzysta pięćdziesiąt kwintylionów osiemdziesiąt dziewięć kwadrylionów osiemset sześćdziesiąt siedem tryliardów sześćset pięćdziesiąt cztery tryliony trzysta trzydzieści cztery biliony dziewięćdziesiąt osiem miliardów jeden milion dziewięćset jedenaście tysięcy dwieście
Obliczanie wartości wyrażenia ONP
✓
Napisz funkcję onp(wyr), gdzie parametr wyr oznacza poprawne wyrażenie ONP. Funkcja zwraca wartość liczbową podanego wyrażenia.
Przykładowe wywołanie funkcji: onp(„9 3 – 4 2 + *)) zwróci 36.
Odwrotna notacja polska – opis
Przykładowe wywołanie funkcji: onp(„9 3 – 4 2 + *)) zwróci 36.
Odwrotna notacja polska – opis
Moduł Turtle
Płot
✓
|
Napisz funkcję rysuj(a, znak), która rysuje pojedynczą sztachetę płotu według wzoru poniżej. Parametr a to długość siatki kwadratu, znak oznacza rodzaj sztachety (1 lub 2). Napisz funkcję płot(kod) rysującą płotek według kodu przekazanego przez parametr kod. Końcowy rysunek powinien zawierać dokładnie dwa razy więcej sztachet ułożonych symetrycznie względem prostej przechodzącej przez środek płotu. Zadbaj o to, aby wrócić żółwiem do środka rysunku. Cały rysunek płotu powinien mieć stałą szerokość równą 600. |
|
Rysunek pomocniczy |
Najmniejszy prostokąt
✓
Mamy listę punktów na płaszczyźnie. Napisz jednoparametrową funkcję prost(lista), po wywołaniu której powstanie rysunek złożony z prostokąta i punktów danych jako parametr:
|
Oryginalna treść zadania pochodzi z OEIIZK |
Dwa koła
✓
Mamy listę punktów na płaszczyźnie. Napisz jednoparametrową funkcję dwa_kola(lista), po wywołaniu której powstanie rysunek złożony z dwóch kół:
|
Oryginalna treść zadania pochodzi z OEIIZK |
Losowe koła
✓
Napisz funkcję losowe_kola(ile, od, do), która rysuje ile kół o losowym położeniu, kolorze wypełnienia i losowym promieniu z przedziału [od, do]. ¯adne dwa koła nie powinny się przecinać i wszystkie powinny się mieścić w oknie, którego rozmiary należy pobrać w programie. W zadaniu zakładamy, że dla podanych parametrów istnieje rozwiązanie. Rysunek powyżej przedstawia efekt wywołania funkcji losowe_kola(5, 100, 160). |
Rysunek powyżej przedstawia efekt wywołania funkcji losowe_kola(20, 15, 100). |
Rysunek powyżej przedstawia efekt wywołania funkcji losowe_kola(220, 15, 100). |
Losowe prostokąty
✓
Content 1
Napisz funkcję kolizja(x1, y1, a1, b1, x2, y2, a2, b2), która zwraca True, gdy prostokaty się dotykają, natomiast False w przeciwnym wypadku. Parametry x1, y1 oznaczają współrzędne lewego górnego wierzchołka, paramtry a1, b1 oznaczają długości boków pierwszego prostokąta. Pozostałe parametry dotyczą analogicznie drugiego prostokata. |
Napisz funkcję losowe_prostokaty(ile, a, b, od, do), która rysuje ile prostokątów o bokach równoległych do krawędzi ekranu o losowym położeniu i losowych bokach a oraz b. ¯adne dwa prostokąty nie powinny się przecinać i wszystkie powinny się mieścić w oknie, którego rozmiary należy pobrać w programie. Kolorem czerwonym oznaczony jest prostokąt o największej, różowym o drugiej co do wielkości, zielonym o najmniejszej powierzchni. W zadaniu zakładamy, że dla podanych parametrów istnieje rozwiązanie. Rysunek powyżej przedstawia efekt wywołania funkcji losowe_prostokaty(10, 100, 300). |
Rysunek powyżej przedstawia efekt wywołania funkcji losowe_prostokaty(100, 50, 300). |
Spirale
✓
Napisz funkcję rekurencyjną spirala_kw(dlugosc), która rysuje spiralę kwadratową według wzoru. Parametr długosc określa długość najmniejszego boku spirali, a każdy następny bok jest o 5 jednostek dłuższy od poprzedniego. Rysunek przedstawia wywołania funkcji: spirala_kw(20). |
Zmodyfikuj tak funkcję rekurencyjną z poprzedniego przykładu, aby żółw wrócił do punktu startowego. |
Napisz funkcję rekurencyjną spirala_tr(dlugosc), która rysuje spiralę trójkątną według wzoru. Parametr długość określa długość najkrótszego boku spirali, każdy następny bok jest o 5 jednostek dłuższy od poprzedniego. Zadbaj o to, aby żółw wrócił do punktu startowego. Rysunek przedstawia wywołanie funkcji spirala_tr(20). |
Napisz funkcję rekurencyjną spirala_p(dlugosc), która rysuje spiralę pięciokątną według wzoru. Parametr długość określa długość najkrótszego boku spirali, a każdy następny bok jest o 5 jednostek dłuższy od poprzedniego. Zadbaj o to, aby żółw wrócił do punktu startowego. Rysunek przedstawia wywołanie funkcji spirala_p(20). |
Napisz funkcję rekurencyjną spirala(bok, kat), która rysuje spiralę według wzoru. Parametr bok określa długość boku spirali, a kat – kąt rysowania następnego boku, który jest o 2 jednostki krótszy od poprzeniego. Zadbaj o to, aby żółw wrócił do punktu startowego. Rysunek przedstawia wywołanie funkcji spirala(200, 122). |
Płatek Kocha
✓
Napisz funkcję rekurencyjną koch(poziom, długosc), która rysuje płatek według wzoru. Parametr poziom oznacza poziom wywołania rekurencyjnego, a długosc – długość linii na poziomie 0. Rysunki przedstawiają wywołania funkcji: koch(0, 300), koch(1, 300), koch(2, 300), koch(3, 300). |
Napisz funkcję platek(poziom, dlugosc, n) rysującą cały Płatek Kocha. Parametr n oznacza ponadto z ilu kawałków składa się cały płatek. Rysunek przedstawia wywołanie funkcji platek(3, 300, 3). |
Drzewo binarne
✓
Content 1
Napisz funkcję rekurencyjną bin(poziom, długosc), która rysuje drzewo binarne. Parametr poziom oznacza poziom wywołania rekurencyjnego od 1 do 12, a długosc – długość linii na poziomie 0. Rysunek przedstawia wywołanie funkcji: bin(0, 100). |
Rysunek przedstawia wywołanie funkcji bin(1, 100). |
Rysunek przedstawia wywołanie funkcji bin(2, 100). |
Rysunek przedstawia wywołanie funkcji bin(4, 100). |
Trójkąt Sierpińskiego
✓
Napisz funkcję trojkat(a), która rysuje trójkąt równoboczny o boku a. Rysunek przedstawia wywolanie funkcji trojkat(100). |
Napisz funkcję rekurencyjną sierp(stopien, a), która rysuje trojkat Sierpińskiego o podanym stopniu od 1 do 6 i boku a. Rysunek przedstawia wywołanie funkcji sierp(1, 200). |
Rysunek przedstawia wywołanie funkcji sierp(2, 200). |
Napisz funkcję figura(stopien, a), która rysuje sześciokąt foremny o danym stopniu rekurencji, boku a i losownych kolorach wypełnienia. Rysunek przedstawia wywolanie funkcji figura(3, 150). |
Dywan Sierpińskiego
✓
Napisz funkcję kwadrat(a), która rysuje kwadrat o boku a. Rysunek przedstawia wywołanie funkcji: kwadrat(100). |
Napisz funkcję rekurencyjną dywan(poziom, a) rysującą dywan Sierpińskiego. Parametr poziom oznacza poziom wywołania rekurencyjnego od 1 do 4, parametr a długość boku. Rysunek przedstawia wywołanie funkcji dywan(1, 200). |
Rysunek przedstawia wywołanie funkcji dywan(2, 200). |
Rysunek przedstawia wywołanie funkcji dywan(3, 200). |
Drzewo Pitagorasa
✓
Napisz funkcję kwadrat(a), która rysuje kwadrat o boku a oraz funkcję rekurencyjną drzewo(stopien, a) rysującą w każdym wywołaniu rekurencyjnym trzy kwadraty na bokach równamiennego trójkąta prostokątnego. Rysunek przedstawia wywołanie funkcji: drzewo(1,100). |
Rysunek przedstawia wywołanie funkcji: drzewo(2,100). |
Rysunek przedstawia wywołanie funkcji: drzewo(3,100). |
Rysunek przedstawia wywołanie funkcji: drzewo_k(8,80). Ustaw losowy kąt ostry trójkąta prostokątnego w każdym wywołaniu rekurencyjnym. Zadbaj o kolory pnia i korony drzewa. |
Zabawa w chaos
✓
|
|
|
Napisz program, który wygeneruje w opisany sposób 100 000 punktów. Jaka figura powstała? Wskazówka: Współrzędne środka odcinka są średnimi arytmecznymi współrzędnych jego końców. |
Ornament
✓
Napisz funkcję element(a), gdzie parametr a oznacza długości wszystkich widocznych odcinków rysunku przedstawionego poniżej. Rysunek przedstawia wywołanie funkcji element(50). |
Napisz funkcję gwiazda(a), która złożona jest z trzech powyższych elementów, gdzie parametr a oznacza długość pojedynczego krótszego odcinka. Zacznij rysować ze środka gwiazdy. Rysunek przedstawia wywołanie funkcji gwiazda(50). |
|
Napisz funkcję ornament(ile), gdzie parametr ile oznacza liczbę od 1 do 16 gwiazd, z których składa się ornament.Odległość między środkami dwóch sąsiednich gwiazd ornamentu wynosi 10a, natomiast odległość dwóch skrajnych gwiazd jest stała i wynosi 500. |
ornament(3) |
Posadzka
✓
Chcemy wykonać posadzkę. W tym celu rysujemy siatkę pomocniczą i rozbijamy naszą poszadzkę na mniejsze elementy. |
Napisz trzy funkcje pomocnicze: kwadrat(a), trojkat(a), trojkatm(a), gdzie parametr a oznacza długość kwadratu siatki. Poniżej znajdują się odpowiednio wywołania funkcji: kwadrat(50), trojkat(50), trojkatm(50). |
|
Zauważamy, że posadzka zbudowana jest z następujących dwóch elementów czterokrotnie wywołanych i odpowiednio obróconych: |
|
plus środkowy kwadrat. |
Napisz funkcje pomocnicze odpowiednio: motyw1(a) oraz motyw2(a), gdzie parametr a oznacza długość boku kwadratu siatki. Rysunki przedstawiają wywołania funkcji motyw1(50) oraz motyw2(50). |
|
Napisz funkcję pomocniczą motywp(a) grupującą dwa powyższe rysunki w jedną całość, gdzie parametr a oznacza długość boku siatki rysunku. |
|
Wykorzystują funkcję motywp(a), napisz funkcję bezparametrową motyw() pokazaną na rysunku poniżej: (cztery wywołania funkcji motywp(a) odpowiednio obrócone plus środkowa posadzka). Wysokość rysunku wynosi 480. |
Szachownica
✓
Napisz program, który dla podanych rozmiarów 0 < a, b < 800 liczb całkowitych prostokąta wypełni go szachownicą złożoną z możliwie największych jednakowych kwadratów.
Przykład: Podaj szerokość prostokąta: 300 Podaj wysokość prostokąta: 150 Długość boku pojedynczego kwadratu szachownicy wynosi: 150 |
Przykład 2: Podaj szerokość prostokąta: 200 Podaj wysokość prostokąta: 120 Długość boku pojedynczego kwadratu szachownicy wynosi: 40 |
|
Przykład 3: Podaj szerokość prostokąta: 180 Podaj wysokość prostokąta: 80 Długość boku pojedynczego kwadratu szachownicy wynosi: 20 |
|
Przekształcenia
✓
Rozważmy przekształcenie postaci: Współczynniki tego przekształcenia będziemy przekazywać w postaci ciągu liczb: [a, b, c, d, e, f] . Pewne przekształcenia (przekształcenia zwężające) mają tą własność, że przekształcając dowolny punkt wielokrotnie według tego samego przekształcenia zbiega on do punktu stałego. Złożenie kilku przekształceń zwężających może dać ciekawy efekt. |
Przykłady: |
Napisz program, który wygeneruje przynajmniej 3 różne fraktale według podanych przekształceń. Poniżej znajduje sie paproć wygenerowana według przekształceń: [0.2,-0.5,-0.5,0.3,0.4,-0.4] [0.2,0.4,0.4,-0.3,0.2,-0.4] [0.6,0.2,-0.1,-0.1,0.7, 0.3] [0.0,-0.2,0.0,0.1,0.3,-0.6] |
|
Dla przekształceń: [0,0.9,-0.4,-0.4,0,-0.5] [0.5,-1,0.5,0.3,0.6,-0.6] |
W celu przyśpieszenia programu wykorzystaj funkcję tracer(0) oraz aktualizuj okno z wygenerowanymi punktami co 1000 iteracji. Zostaw program na kilka minut. Do rysowania punktów wykorzystaj np. funkcję dot(3, "blue"). Zadanie pochodzi ze strony. Tam też znajduje się doładny opis tego zaganienia (zob. tw. Banacha o punkcie stałym) |
L-systemy
✓
L-systemy (systemy Lindemayera), znajdują zastosowanie w grafice komputerowej, szczególnie w generowaniu fraktali i modelowaniu roœlin. L-systemy wykorzystują tzw. produkcje. Działają one w następujący sposób: dany mamy symbol początkowy zwany aksjomatem - niech będzie to np. ac. Dane są również reguły np: a:b oraz b:ba - co w uproszczeniu możemy czytać następująco: jeżeli mamy a to zastępujemy je symbolem b, jeżeli mamy b to zastępujemy go symbolami ba. Czyli dla naszego aksjomatu i powyższych reguł otrzymamy:
Wyspa Kocha aksjomat: F+F+F+F reguła: F:F+F-F-FF+F+F-F kąt: 90o krok: 10 powtórzeń: 2 |
Trójkąt Sierpińskiego aksjomat: F+F+F reguła: F:F+F-F-F+F kąt: 60o krok: 40 powtórzeń: 3 |
|
Pentadendryt aksjomat: F reguła: F:F+F-F--F+F+F kąt: 72o krok: 4 powtórzeń: 4 |
|
Smok Heighway'a aksjomat: FX reguły: X:X+YF+ Y:-FX-Y kąt: 90o krok: 3 powtórzeń: 13 |
|
Pełna wersja zadania znajduje się tutaj |