Programowanie Funkcyjne WPPT Lista zadań
|
|
- Aleksander Szymański
- 6 lat temu
- Przeglądów:
Transkrypt
1 Programowanie Funkcyjne WPPT Lista zadań Jacek Cichoń, WPPT, PWr, 2018/19 Zadania oznaczone * są nieco trudniejsze od zadań bez gwiazdki. Zadania oznaczone ** są jeszcze trudniejsze. 1 Wstęp 1.1 Wprowadzenie do Haskell a Zadanie 1 Zrób wszystkie zadania z książki Real World Haskell po rozdziale pierwszym. Zadanie 2 Oblicz w GHCI wartości wyrażeń 2 3 2, (2 3) 2 i 2 (2 3). Dowiedz się jaka jest łączność operatora za pomocą polecenia :i ( ). Zadanie 3 Funkcją Eulera φ nazywamy funkcję określoną wzorem φ(n) = card({k n : gcd(k, n) = 1}). o dziedzinie N Oprogramuj funkcję φ (funkcja gcd jest w bibliotece Prelude) 2. Napisz funkcję, która dla danej liczby naturalnej n wyznacza liczbę k n φ(k). Zadanie 4 Trójkę liczb naturalnych (a, b, c) nazywamy właściwą trójką pitagorejską jeśli a 2 = b 2 + c 2 oraz gcd(b, c) = 1. Wyznacz wszystkie właściwe trójki pitegorejskie takie, że a 200. Zadanie 5 Zaimplementuj na kilka sposobów funkcję służącą do wyznaczania liczb Fibbonacciego: rekurencyjnie, rekurencyjnie za pomocą wzorców. Zadanie 6 Zaimplementuj funkcję ( ( n k). Nie stosuj tożsamości n ) k = n! zastosuj wzór rekurencyjny na ( n+1 k+1). k!(n k)! - jest to kosztowne rozwiązanie; Zadanie 7 Liczbę naturalną n nazywamy doskonałą jeśli n = {d < n : d n}. Np. 6 = Wyznacz wszystkie liczby doskonałe mniejsze od Elementy teorii kategorii Zadanie 8 Które z następujących struktur są monoidami? 1. ([0, 1], 0, ), gdzie x y = max{x, y} 2. ([0, 1], 1, ), gdzie x y = min{x, y} 3. ((0, ), 1, ), gdzie x y = x y 4. (X X, Id x, ) (X jest ustalonym zbiorem) 5. (X, [], ++), (gdzie X jest ustalonym zbiorem) Zadanie 9 Pokaż, że strzałka Id A jest jednoznaczna, czyli, że jeśli Id1 A oraz Id2 A spełniają własności identyczności to Id1 A = Id2 A. 1
2 Zadanie 10 Pokaż, że złożenie monomorfizmów jest monomorfizmem. Zadanie 11 Pokaż, że złożenie epimorfizmów jest epimorfizmem. Spróbuj podać proste uzasadnienie tego faktu oparte o poprzednie zadanie. Zadanie 12 Pokaż, że jeśli f : A B jest izomorfizmem, to odwrotność f 1 jest wyznaczona jednoznacznie. Zadanie 13 Pokaż, że jeśli f 1 jest odwrotnością f : A B i g 1 jest odwrotnością g : B C, to f 1 g 1 jest odwrotnością g f : A C. Zadanie 14 Podaj przykład kategorii ze strzałką która jest monomorfizmem oraz epimorfizmem, ale nie jest izomorfizmem. Zadanie 15 Rozważamy kategorię zbudowaną z częściowego porządku (X, ). Kiedy istnieją w niej elementy początkowe i końcowe? Zadanie 16 Zinterpretuj w języku informatyki komutowanie następującego diagramu toreal Int succ Int Real succ Real Int. toreal Real Zadanie 17 Pokaż, że obiekty końcowe (terminalne) w ustalonej kategorii są wyrażone jednoznacznie z dokładnością do izomorfizmu. Pokaż podobną własność obiektów początkowych. Zadanie 18 Wyznacz obiekty końcowe i początkowe w następujących kategoriach: 1. w kategorii grup Grp 2. w kategorii ciał 3. w kategorii częściowych porządków Pos 4. w kategorii monoidów Mon 5. Set Set 6. Set Zadanie 19 Pokaż, że produkt (A B, π A, π B ) jest wyznaczony jednoznacznie z dokładnością do izomorfizmu w kategorii Set. Wskazówka: Skorzystaj z jednoznaczności mediatora w definicji produktu. 2 Podstawowe typy 2.1 Haskell Zadanie 20 Dowiedz się jak można przekonwertować elementy typu Int oraz Integer na typy Float i Double. Zadanie 21 Oszacuj złożoność obliczeniową następującej funkcji służącej do odwracania listy: rev :: [a] -> [a] rev [] = [] rev (x:xs) = (rev xs) ++[x] Zadanie 22 Oprogramuj funkcję fib, która wyznacza n-tą liczbę Fibonacciego w czasie liniowym. Wskazówka: przyglądnij się parze (f n+1, f n ). Zadanie 23 Napisz funkcję middle, która dla trzech podanych liczb x, y, z wyznacza która z nich leży pomiędzy dwoma pozostałymi. Zadanie 24 Ulepsz implementację funkcji Quick Sort która omówiona była na wykładzie. Zadanie 25 Napisz funkcję inits, która dla danej listy wyznaczy listę wszystkich jej odcinków początkowych, np. 2
3 inits [1,2,3,4] == [[],[1],[1,2],[1,2,3],[1,2,3,4]] Zadanie 26 Napisz funkcję partitions, która dla danej listy xs wyznaczy liste wszystkich par (ys,zs) takich, że xs == ys++zs. Zadanie 27 Napisz funkcje nub, która usunie z listy wszystkie duplikaty, np. nub [1,1,2,2,2,1,4,1] == [1,2,4] Zadanie 28 Napisz funkcje permutations, ktora dla danej listy wyznaczy listę wszystkich jej permutacji (możemy założyć, ze wszystkie elementy listy wejściowej sa różne). Zadanie 29 Napisz funkcję, która oblicza iloma zerami (w układzie dziesiętnym) kończy się liczba n!. Uwaga: taki pomysł: mam dane n; obliczam n!; zamieniam na łańcuch s; odwracam go; liczę ilość początkowych zer traktujemy jako kompletnie beznadziejny. 2.2 Teoria Kategorii Zadanie 30 Pokaż, że jeśli C jest kategorią, to C op też jest kategorią. Zadanie 31 Niech (G, ) będzie grupą. Na zbiorze G określamy działanie a b = b a 1. Pokaż, że (G ) jest grupą. 2. Znajdź izomorfizm między grupami (G, ) oraz (G, ). 3. Jaki ma związek to zadanie z konstrukcją C op? Zadanie 32 Zapisz w języku diagramów komutujących (przemiennych) łączność operacji złożenia funkcji. Zadanie 33 Niech (G, ), (H, ) będą grupami oraz niech f : G H będzie homomorfizmem. Wiadomo, że grupa ilorazowa G/ker(f) jest izomorficzna z podgrupą img(f) grupy H. Zapisz to w języku przemiennych diagramów. Zadanie 34 Niech C będzie kategorią z produktem. Dla f : X A oraz g : Y B niech f, g będzie strzałką mediacyjną dla produktu A B. Pokaż, że f h, g h = f, g h. Zadanie 35 Rozważamy kategorię Mon (monoidów). Pokaż, że funkcja f : (N, 0, +) (Z, +, +) określona wzorem f(x) = x (czyli identyczność na N traktowana jako morfizm z (N, 0, +) do (Z, 0, +)) jest epimorfizmem. Zadanie 36 Ustalmy zbiór Ω. Rozważmy kategorię P(Ω) której obiektami są wszystkie podzbiory zbioru Ω, zaś morfizmy oznaczają zawieranie zbiorów. Niech A, B Ω. 1. Wyznacz A B w tej kategorii 2. Wyznacz A + B w tej kategorii. Zadanie 37 Rozważmy takie przyporządkowanie F : Set Set { : X < ℵ 0 F (X) = N : X ℵ 0 Pokaż, że F nie można rozszerzyć do funktora. Zadanie 38 Sprawdź, że następujące przyporządkowania są endofunktorami kategorii Set oraz zaproponuj dla nich odwzorowania η X : X F (X) i µ X : F (F (X)) F (X): 1. F (X) = X X; F (f : X Y )(x, y) = (f(x), f(y) 2. (Reader) R A (X) = X A ; R(f : X Y )(φ) = f φ 3. (Writer) W M (X) = M X; W M (f : X Y ) = id M f, gdzie M = (M, e, ) jest ustalonym monoidem 4. (State) S A (X) = (A X) A ; S A (f : X Y )(φ) = (λa)(let (b, y) = φ(a) in (b, f(y))) 5. (Maybe) M(X) = X { X }; F (f : X Y ) = f {( X, Y )} 6. (Niedeterminizm) N(X) = {Y X : Y < ℵ 0 }; N(f : X Y )(A) = f[a] 3
4 Odwzorowania η oraz µ muszą posiadać te same własności co ich odpowiedniki dla funktora List, czyli µ X η F (X) = id F (X), µ X F (η X ) = id F (X) oraz µ X µ F (X) = µ F (µ). Zadanie 39 Niech mmap f = map (map f) oraz mmmap f = map (map (map f)). 1. Zbadaj typy tych odwzorowań. 2. Przetestuj ich działanie 3. Pokaż, że mmap = map. map oraz mmmap = map. map. map 3 Lambda wyrażenia Zadanie 40 Zapisz operacje binarne (+), ( ) za pomocą lambda wyrażeń. Zadanie 41 Niech ff = (2 ˆ) oraz gg = (ˆ 2). Podaj interpretacją tych funkcji. Zadanie 42 Sprawdź wartości wyrażeń map (ˆ 2) [1..5] oraz map (2 ˆ) [1..5] i wyjaśnij dokładnie otrzymane wyniki. Zadanie 43 Niech f x y = (\x -> (\y -> x + 2 * y)) (x * y). Zastosuj alfa transformację i beta redukcję do uproszczenia funkcji f. Zadanie 44 Rozważmy następujące definicje f = \x -> x * x g = \y -> f (f y) h = g. g Uprość funkcję h. Zadanie 45 Spróbuj uprościć następujące wyrażanie: (λx (x x))(λx x). Wskazówka: Zastosuj najpierw alfa transformację do pierwszego składnika. Zadanie 46 Oblicz w GHCi następujące wyrażenie (head $ map (\x y -> (x * x) + (y * y) ) [2,3,4]) 5 i wyjaśnij otrzymany wynik. Zadanie 47 (Sanity test) Niech 1. S = (λf g x f x (g x)) 2. K = (λx y x) 3. I = (λx x) Pokaż, że S K K = I 4 Listy Zadanie 48 Funkcja span o sygnaturze span :: (a -> Bool) -> [a] -> ([a], [a]) zastosowana do predykatu p i listy xs, zwraca krotkę, w której pierwszy element jest najdłuższym prefiksem (być może pustym) xs elementów spełniających p, a drugi element jest pozostałą częścią listy. Sprawdź jej działanie w GHCI i następnie samodzielnie ją zaprogramuj. Wskazówka: Skorzystaj z wyrażenia let. Zadanie 49 Napisz funkcję która eliminuje kolejne duplikaty z listy, np. ecd [1,1,1,2,2,1,1,1] [1,2,1]. Zadanie 50 Napisz funkcję która pakuje kolejne duplikaty do podlisty, np. pack [1,1,1,2,2,3,3,3] [[1,1,1],[2,2],[3,3,3]]. Wskazówka: Pomyśl o pomocniczej funkcji trzech zmiennych f current ys acc; w liście list acc możesz zbierać podciągi; current jest aktualnie budowanym podciągiem, zaś ys jest przetwarzanym ciągiem. 4
5 Zadanie 51 Kodowanie RLE (Run-Length Encoding) polega na zapisaniu ciągów tych liter za pomocą liczników powtórzeń. np. rleencode ąaaabbbaaaaccd" [(4, a ),(3, b )(4, a ),(2, c ),(1,d)]. 1. Zaimplementuj tę funkcję 2. Napisz funkcję odwrotną rledecode do funkcji rleencode. 5 Folds Zadanie 52 Zdefiniuj za pomocą funkcji foldr funkcję, które dla listy liczb [a 1,..., a n ] oblicza ile liczb parzystych występuje w tej liście. Zadanie 53 Sprawdź typy i przetestuj działanie funkcji sum, product, all i any. Zadanie 54 Przetestuj działanie funkcji foldl (+) 0 X, foldr (+) 0 X, foldl (+) 0 X, foldr (+) 0 X oraz sum X na dużych listach liczb X. Wskazówka: skorzystaj z polecenia GHCi :set +s; w celu usunięcia wyświeltania informacji skorzystaj z polecenia :unset +s. Zadanie 55 Korzystając z funkcji foldl i foldr napisz funkcję approx n zdefiniowaną następująco approx(n) = n k=1 1 k! Zadanie 56 Napisz, korzystając z funkcji foldl, funkcję która dla ciągu liczb [a 1,..., a n ] oblicza n k=1 ( 1)k+1 a k Zadanie 57 Napisz funkcję która dla zadanej listy [a 1,..., a n ] elementu typu [Fractional a] wyznaczy średnią arytmetyczną oraz wariancję ciągu (a 1,..., a n ). Skorzystaj tylko raz z funkcji fold. 6 Naturalne transformacje Zadanie 58 Niech F : Set Set będzie przyporządkowaniem określonym wzorami F (X) = N X i F (f : X Y )(n, x) = (n + 1, fx). Pokaż, że F nie jest funktorem. Zadanie 59 Niech S(X) = X X i S(f : X Y )((x, y)) = (f(x), f(y)). 1. Wyznacz wszystkie naturalne transformacje η : S S. 2. Wyznacz strukturę monoidu (Nat(S, S), ) Zadanie 60 Niech F (X) = P (X) oraz F (f : X Y ) = (λa f[a]). 1. Wyznacz N at(i, F ) 2. Wyznacz N at(f, I). Zadanie 61 Ustalmy zbiór A i rozważmy funktory F, G : Set Set określone wzorami F (X) = A X, G(X) = X A, oraz F (f)(a, x) = (a, f(x)) i G(f)(x, a) = (f(x), a) dla f : X Y oraz a A i x X. Wyznacz wszystkie naturalne transformacje oraz wszystkie naturalne izomorfizmy η : F G. Zadanie 62 Rozważamy funktor zbioru potęgowego P : Set Set ze działaniem na strzałkach w Set określonym wzorem P (f)(a) = f(a) dla f : X Y (gdzie f(a) oznacza obraz zbiory A przez odwzorowanie f). Wyznacz wszystkie naturalne transformacje η : I P, gdzie I jest funktorem identycznościowym (czyli I(X) = X i I(f) = f). 5
6 7 Typy Zadanie 63 Niech m91 : Int Int będzie funkcją zdefiniowaną wzorem { n 10 : n > 100 m91(x) = m91(m91(n + 11)) : n <= 100 Zaimplementuj funkcję m91 w języku Haskell i wyznacz jej wartości dla wszystkich liczb ze zbioru {0,..., 100}. Zadanie 64 Zdefiniuj typ IntOrString (koprodukt typów Int i String) i zaimplementuj jego instację do klasy Eq. Zadanie 65 Rozważmy typ data BTree a = L a N a (BTree a) (BTree a) deriving Eq 1. Zrób z typu BTree własną instancję klasy Show 2. Zrób z typu BTree instancję klasy Functor 3. Pokaż, że zaimplementowana funkcja fmap spełnia aksjomaty funktora. Sprawdź na kilku przykładach, że twoja implementacja działa poprawnie. 4. Zrób z typu BTree instancję klasy Foldable - czyli zaimplementuj funkcję foldr 5. Napisz za pomocą funkcji foldr funkcję findinbtree, o sygnaturze findinbtree :: a -> BTree a -> Bool która sprawdza, czy w drzewie występuje węzeł z daną jako pierwszy argument wartością 6. Napisz za pomocą funkcji foldr funkcję, która zlicza ilość węzłów w drzewie 7. Napisz funkcję concatbtree o sygnaturze concatbtree :: a -> BTree a -> BTree a -> BTree a która z pierwszego parametru i dwóch drzew robi jedno drzewo. 8. Napisz wariant funkcji fold dla BTree o następującej sygnaturze foldtree :: (z->a->z->z) -> z-> BTree a -> z która na liściach zachowuje się następująco: foldtree f z (L a) = z. Zdefiniuj za pomocą tej funkcji funkcje które wyznaczają wysokość drzewa i liczbę liści w drzewie Zadanie 66 Dla liczby naturalnej n definiujemy 1. V n (X) = X... X }{{} n 2.V n (f : X Y )((x 1,..., x n )) = (fx 1,..., fx n ) 1. Pokaż, że V n jest funktorem. 2. Wyznacz liczbę naturalnych transformacji w V n w V m 3. Wyznacz wszystkie elementy Nat(V 2, V 3 ) Zadanie 67 Niech f, g : Float Maybe Float. 1. Zaimplementuj samodzielnie mx >>= f 2. Zaimplementuj samodzielnie f >=> g 3. Zaimplementuj samodzielnie funkcję join dla funktora Maybe. Zadanie 68 Rozważamy funktory z zadania Sprawdź, czy wszystkie warianty odwzorowań η i µ są naturalnymi transformacjami. Jeśli nie, to popraw zaproponowane definicje. 2. Sprawdź, czy dla wszystkich par odwzorowań η i µ spełnione są równości µ X η F (X) = id F (X), µ X F (η) = id F (X) oraz µ X µ F (X) = µ X F (µ X ). Jeśli nie, to popraw definicje. Zadanie 69 Zostaw telefon, komputer, książki i notatki w domu. Zabarykaduj się w jakimś pokoju na uczelni na tak długo, aż samodzielnie udowodnisz lemat Yonedy. 6
7 Zadanie 70 Wyjaśnij następującą równoważność: kategorie z jednym obiektem monoidy Zadanie 71 Wyznacz elementy początkowe i końcowe w kategorii endomorfizmów [Set,Set]. Zadanie 72 Zadanie 73 Niech M będzie ustalonym niepustym zbiorem. Niech W (X) = X M i W (f : X Y ) = f id. Załóżmy, że trójka (W, η, µ) jest monadą. Niech e M będzie takie, że η {1} = (1, e). Niech : M M M będzie takie, że µ(((1, n), m)) = (1, n m). Pokaż, że struktura (M, e, ) jest monoidem. Zadanie 74 Załóżmy, że M = (M, m, ) i N = (N, n, ) są monoidami. Na zbiorze M N określamy działanie (x, a) (y, b) = (x y, a b). Pokaż, że struktura M N = (M N, (m, n), ) jest monoidem. Zadanie 75 Niech Sum Int = (Z, 0, +), Product Int = (Z, 1, ). 1. Czy monoidy Sum Int oraz Product Int są izomorficzne? 2. Czy monoidy Sum Int oraz (Sum Int) (Sum Int) są izomorficzne? 8 Monady Zadanie 76 Rozważmy funktor V 3 (X) = X X X, V 3 (f : X Y )((x 1, x 2, x 3 )) = (f(x 1 ), f(x 2 ), f(x 3 )). W Zadaniu 66 pokazaliśmy, że to jest rzeczywiście funktor. 1. Pokaż, że jedynym odwzorowaniem naturalnym η V 3 jest odwzorowanie η X (x) = (x, x, x). 2. Pokaż, że jedynym odwzorowaniem µ : (V 3 ) 2 V 3 spełniającym równości µ V 3 (η X ) = id T (X) i µ η T (X) = id T (X) jest odwzorowanie zadane wzorem µ X (((x 1, x 2, x 3 ), (y 1, y 2, y 3 ), (z 1, z 2, z 3 ))) = (x 1, y 2, z 3 ). 3. Sprawdź, że trójka (V 3, η, µ) jest monadą. Zadanie 77 Rozważmy funktor V 3 z Zadania Zaimplementuj ten funktor jako konstruktor typów i zrób z niego instancję klasy funktor. 2. Wiedząc, że trójka (V 3, η, µ) jest monadą wyznacz dla niej operację vx >>= f 3. Zaimplementuj go jako monadę. Zastosuj najpierw kanoniczną metodę zbudowania z monady funktora aplikatywnego. 4. Oprogramuj samodzielnie operację <*>. Postaraj się aby zrobić to możliwie prosto. Zastąp poprzedni kod instancji Applicative ulepszonym kodem. Zadanie 78 Wyznacz dla wszystkich poznanych do tej pory monad operacje >>=, >> oraz < >. Zadanie 79 Rozważmy następujący typ data Term = V Int Plus Term Term Mult Term Term Div Term Oprogramuj ewaluator eval:: Term -> Maybe Int w stylu monadycznym. Zadanie 80 Pokaż, że następujące kody do f<-tf; x<-tx; return (f x) oraz do f<- tf; fmap f tx są równoważne. Zadanie 81 Zaimplementuj funkcję mygcd :: Int -> Int -> Writer [String] Int obliczającą największy wspólny dzielnik podanych dwóch liczb oraz wyznaczającą jednocześnie ślad wykonanych obliczeń. Po wywołaniu jej dla parametrów 32 i 14 powinniśmy otrzymać mniej więcej taki wynik: (2,["32 mod 14 = 4","14 mod 4 = 2","4 mod 2 = 0","GCD = 2"]) Zadanie 82 (Problem Collatz a) Rozważmy funkcję f::int->int zdefiniowaną wzorem f x = if x mod 2 ==0 then x div 2 else 3*x+1 7
8 Niech h(x) = if x==1 then 1 else f x. Interesuje nas ile iteracji funkcji f wewnątrz funkcji g jest potrzebnych do osiągnięcia 1. Hipoteza Collatz a głowi, że funkcja h jest całkowita. Skorzystaj z monady Writer (Sum Int,String) Int do sprawdzania tej hipotezy. Składnik Sum Int to monoid liczb całkowitych z operacją +. Ma on służyć do zliczania wywołań funkcji f. Składnik String ma służyć do zapamiętania śladu obliczeń. Sprawdź, czy dla liczby 97 funkcja h wykonuje 118 kroków. 8.1 Notacja do * Zadanie 83 Niech data Tree a = L a B (Tree a) (Tree a). 1. Zrób z konstruktora Tree instancję klasy Functor 2. Zrób z konstruktora Tree instancję klasy Monad. Jego instancję klasy Applicative wykonaj za pomocą kanonicznej konstrukcji ft <*> xt = do f <- ft; x <- xt; return (f x) 3. Wyznacz funkcję join dla konstruktora Tree. 4. Zbadaj na prostych przykładach działanie operacji <*> i następnie spróbuj samodzielnie ją zaprogramować. Zadanie 84 Uprość wyrażenie do x <- tx; f x. Zadanie 85 Pokaż, że następujące kody: do f <- tf; x <- tx; return (f x) oraz do f <- Tf; fmap f tx są równoważne Zadanie 86 Oprogramuj funkcję eval:: M.Map String Float -> Term -> Maybe Float dla "języka" data Term = X String -- zmienna N Float -- stała E Term -- exp L Term -- ln A Term Term -- add S Term Term -- substract M Term Term -- multiply D Term Term -- divide Pierwszy parametr tej funkcji jest mapą przechowującą wartości zmiennych 1. Zrób infixową instancję klasy Show dla wyrażeń typu Term 2. Przetestuj działanie funkcji eval na pierwszej zmiennej w przypadkach, gdy nie wszystkie użyte w wyrażeniach zmienne mają przypisane wartości. Zadanie 87 Rozszyfruj działanie kodu liftm (:[]) abc. 8.2 Przykłady monad Zadanie 88 Niech f :: Monad m => m (m a) -> m a f mmx = do mx <- mmx x <- mx return x Jaką funkcję monadyczną oprogramowuje funkcja f? Czy można oprogramować funkcję f prościej? Zadanie 89 Rozważamy funktor V2(X) = X X, V (f : X Y )(x 1, x 2 ) = (f(x 1 ), f(x 2 )). 1. Oprogramuj ten funktor jako data Pair a = P a a. 2. Zrób z niego instancję klasy Applicative stosując jako pure jedyną naturalną transformację I V2 oraz 8
9 (P f g) <*> (P x y) = P (f x) (g y) 3. Wiedząc, że trójka (V2, η, µ), gdzie η(x) = (x, x) oraz µ(((x 1, x 2 ), (y 1, y 2 ))) = (x 1, y 2 ) jest monadą zrób z V2 instancję klasy Monad 4. Sprawdź, że operacja <*> zdefiniowana w standardowy sposób, czyli jako pf <*> px = do {f<- pf; x<- px; return (f x)} pokrywa się z następującą implementacją (P f m) <*> (P x n) = P (f x) (m * n) gdzie * jest operacją monoidalną (jest to konieczny warunek zgodności monady z applicative) 5. Pokaż, że jeśli f,g::a->b oraz px::pair a, to ( (P f g) <*> px ) = ( px >>= (\x -> P (f x) (g x)) ) Zadanie 90 Oprogramuj za pomocą Monady Reader funkcję generującą stronę WWW służącą do wyświetlania równania dnia. Zależeć ma od trzech parametrów typu string. Pierwszy parametr ma zawierać tytuł strony (title). Drugi ma być nazwą równania a trzeci parametr ma zawierać równanie zapisane w języku Latex. Fragment kodu może wyglądać mniej więcej tak: html :: Reader (String,String,String) String html = do t1<- head t2<- content return ( concat["<!doctype html>\n<html lang= pl >\n", t1, t2, "</html>"] ) head :: Reader (String,String,String) String head = do... Zadanie 91 Rozważamy siatkę (grid) Z Z zaimplementowaną jako type Grid = (Int,Int). Korzystając z monady typu Writer String Grid zaimplementuj funkcje up,down,right,left :: Grid -> Writer String Grid które oprogramowują skoki w górę, w dół, w lewo i w prawo o 1 tak aby Writer śledził sekwencje wywołań tych funkcji 1. Niech run pos = do x0 <- writer (pos,"") x1 <- up x0 x2 <- left x1 down x2 Sprawdź, czy po wywołaniu runwriter $ run (0,0) otrzymasz ((-1,0),"uld"). 2. Oprogramuj funkcję contrun :: Tablica -> String -> Writer String Tablica, której drugi parametr jest ciągiem sterującym: dla litery u ma wywołać funkcję up, dla r - funkcję right itd. Inne znaki powiiny być ignorowane. Po wywołaniu runwriter $ contrun (0,0) xxuuulllllddddddrraaa powinniśmy otrzymać odpowiedź ((-3,-3), rrddddddllllluuu ). Zadanie 92 Niech m będzie monadą. Niech do x<- mx return (f x) 1. Jaka powinna być sygnatura funkcji f aby ten kod był poprawny semantycznie? 2. Zrób de-sugaryzację tego kodu. 9 Naturalne transformacje Zadanie 93 Niech V 2 będzie funktorem z zadania 89. Niech π 1 ((x 1, x 2 )) = x 1 oraz π 2 ((x 1, x 2 )) = x 2. Są to naturalne transformacje z V 2 do funktora identycznościowego I. Wyznacz π 1 π 2, π 2 π 1, π 1 π 1 oraz π 2 π 2. 9
10 Zadanie 94 Niech L(X) = [X], η(x) = [x], µ(x) = concat(x). Wyznacz µ η, η µ, η η oraz µ µ. Zadanie 95 Na wykładzie zdefiniowaliśmy złożenie horyzontalne naturalnych transformacji α : F G oraz β : K L za pomocą wzoru (β α) X = β G(X) K(α X ) 1. Pokaż, że rzeczywiście β α jest naturalną transformacją z K F do L G. 2. Pokaż, że (β α) X = L(α X ) β F (X). Wskazówka: Skorzystaj z tego, że β jest naturalną transformacją, zaś α jest morfizmem z F (X) do G(X). Zadanie 96 Niech C, D oraz E będą kategoriami. Załóżmy, że F 1, F 2, F 3 : C D, G 1, G 2, G 3 : D E są funktorami, oraz, że α 1 : F 1 F 2, α 2 : F 2 F 3, β 1 : G 1 G 2, β 2 : G 2 G 3 są naturalnymi transformacjami. Pokaż, że (β 2 β 1 ) (α 2 α 1 ) = (β 2 α 2 ) (β 1 α 1 ). C.D.N. Powodzenia, Jacek Cichoń 10
Programowanie Funkcyjne WPPT Lista zadań
Programowanie Funkcyjne WPPT Lista zadań Jacek Cichoń, WPPT, PWr, 2018/19 Zadania oznaczone * są nieco trudniejsze od zadań bez gwiazdki. Zadania oznaczone ** są jeszcze trudniejsze. 1 Wstęp 1.1 Wprowadzenie
Topologia Algebraiczna - Pomocnik studenta. 1. Język teorii kategorii
Topologia Algebraiczna - Pomocnik studenta. 1. Język teorii kategorii Agnieszka Bojanowska Stefan Jackowski 24 listopada 2010 1 Podstawowe pojęcia Bedziemy uzywać następujących pojęć i przykładów dotyczących
5. Algebra działania, grupy, grupy permutacji, pierścienie, ciała, pierścień wielomianów.
5. Algebra działania, grupy, grupy permutacji, pierścienie, ciała, pierścień wielomianów. Algebra jest jednym z najstarszych działów matematyki dotyczącym początkowo tworzenia metod rozwiązywania równań
Uwaga 1.2. Niech (G, ) będzie grupą, H 1, H 2 < G. Następujące warunki są równoważne:
1. Wykład 1: Produkty grup. Produkty i koprodukty grup abelowych. Przypomnijmy konstrukcje słabych iloczynów (sum) prostych i iloczynów (sum) prostych grup znane z kursowego wykładu algebry. Ze względu
Elementy języka Haskell
Elementy języka Haskell Cechy języka Historia języka Proste przykłady Środowisko interakcyjne Typy i klasy Definiowanie funkcji Wyrażenia listowe Deklarowanie typów, danych i klas Monady Cechy języka zwięzłe
Zasada indukcji matematycznej
Zasada indukcji matematycznej Twierdzenie 1 (Zasada indukcji matematycznej). Niech ϕ(n) będzie formą zdaniową zmiennej n N 0. Załóżmy, że istnieje n 0 N 0 takie, że 1. ϕ(n 0 ) jest zdaniem prawdziwym,.
Wstęp do Programowania potok funkcyjny
Wstęp do Programowania potok funkcyjny Marcin Kubica 2010/2011 Outline Procedury wyższych rzędów 1 Procedury wyższych rzędów jako abstrakcje konstrukcji programistycznych Intuicje Procedury wyższych rzędów
Przykładowe zadania z teorii liczb
Przykładowe zadania z teorii liczb I. Podzielność liczb całkowitych. Liczba a = 346 przy dzieleniu przez pewną liczbę dodatnią całkowitą b daje iloraz k = 85 i resztę r. Znaleźć dzielnik b oraz resztę
Programowanie - wykład 4
Programowanie - wykład 4 Filip Sośnicki Wydział Fizyki Uniwersytet Warszawski 20.03.2019 Przypomnienie Prosty program liczący i wyświeltający wartość silni dla wprowadzonej z klawiatury liczby: 1 # include
Obliczenia na stosie. Wykład 9. Obliczenia na stosie. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 266 / 303
Wykład 9 J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 266 / 303 stos i operacje na stosie odwrotna notacja polska języki oparte na ONP przykłady programów J. Cichoń, P. Kobylański Wstęp
Złożoność obliczeniowa zadania, zestaw 2
Złożoność obliczeniowa zadania, zestaw 2 Określanie złożoności obliczeniowej algorytmów, obliczanie pesymistycznej i oczekiwanej złożoności obliczeniowej 1. Dana jest tablica jednowymiarowa A o rozmiarze
Schemat rekursji. 1 Schemat rekursji dla funkcji jednej zmiennej
Schemat rekursji 1 Schemat rekursji dla funkcji jednej zmiennej Dla dowolnej liczby naturalnej a i dowolnej funkcji h: N 2 N istnieje dokładnie jedna funkcja f: N N spełniająca następujące warunki: f(0)
Zbiory, relacje i funkcje
Zbiory, relacje i funkcje Zbiory będziemy zazwyczaj oznaczać dużymi literami A, B, C, X, Y, Z, natomiast elementy zbiorów zazwyczaj małymi. Podstawą zależność między elementem zbioru a zbiorem, czyli relację
Działania Definicja: Działaniem wewnętrznym w niepustym zbiorze G nazywamy funkcję działającą ze zbioru GxG w zbiór G.
Działania Definicja: Działaniem wewnętrznym w niepustym zbiorze G nazywamy funkcję działającą ze zbioru GxG w zbiór G. Przykłady działań wewnętrznych 1. Dodawanie i mnożenie są działaniami wewnętrznymi
Algebrą nazywamy strukturę A = (A, {F i : i I }), gdzie A jest zbiorem zwanym uniwersum algebry, zaś F i : A F i
Algebrą nazywamy strukturę A = (A, {F i : i I }), gdzie A jest zbiorem zwanym uniwersum algebry, zaś F i : A F i A (symbol F i oznacza ilość argumentów funkcji F i ). W rozważanych przez nas algebrach
a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[10] 3-2 5 8 12-4 -26 12 45-76
. p. 1 Algorytmem nazywa się poddający się interpretacji skończony zbiór instrukcji wykonania zadania mającego określony stan końcowy dla każdego zestawu danych wejściowych W algorytmach mogą występować
SIMR 2016/2017, Analiza 2, wykład 1, Przestrzeń wektorowa
SIMR 06/07, Analiza, wykład, 07-0- Przestrzeń wektorowa Przestrzeń wektorowa (liniowa) - przestrzeń (zbiór) w której określone są działania (funkcje) dodawania elementów i mnożenia elementów przez liczbę
Rekurencja (rekursja)
Rekurencja (rekursja) Rekurencja wywołanie funkcji przez nią samą wewnątrz ciała funkcji. Rekurencja może być pośrednia funkcja jest wywoływana przez inną funkcję, wywołaną (pośrednio lub bezpośrednio)
Programowanie Funkcyjne. Marcin Kubica Świder,
Programowanie Funkcyjne Marcin Kubica Świder, 28-04-2015 Czym jest programowanie funkcyjne? Obliczalne pojęcia matematyczne. Definicje stałych i funkcji i relacji. Wszystkie definicje są konstruktywne,
Poprawność semantyczna
Poprawność składniowa Poprawność semantyczna Poprawność algorytmu Wypisywanie zdań z języka poprawnych składniowo Poprawne wartościowanie zdań języka, np. w języku programowania skutki wystąpienia wyróżnionych
4. Funkcje. Przykłady
4. Funkcje Przykłady 4.1. Napisz funkcję kwadrat, która przyjmuje jeden argument: długość boku kwadratu i zwraca pole jego powierzchni. Używając tej funkcji napisz program, który obliczy pole powierzchni
Struktury formalne, czyli elementy Teorii Modeli
Struktury formalne, czyli elementy Teorii Modeli Szymon Wróbel, notatki z wykładu dra Szymona Żeberskiego semestr zimowy 2016/17 1 Język 1.1 Sygnatura językowa Sygnatura językowa: L = ({f i } i I, {P j
Indukcja matematyczna
Indukcja matematyczna Zadanie. Zapisać, używając symboli i, następujące wyrażenia (a) n!; (b) sin() + sin() sin() +... + sin() sin()... sin(n); (c) ( + )( + /)( + / + /)... ( + / + / +... + /R). Zadanie.
ALGORYTMY I STRUKTURY DANYCH
KATEDRASYSTEMÓWOBLICZENIOWYCH ALGORYTMY I STRUKTURY DANYCH 1.Rekurencja Rekurencja inaczej rekursja (ang. recursion) to wywołanie z poziomu metody jej samej. Programowanie z wykorzytaniem rekurencji pozwala
Funkcje. Oznaczenia i pojęcia wstępne. Elementy Logiki i Teorii Mnogości 2015/2016
Funkcje Elementy Logiki i Teorii Mnogości 2015/2016 Oznaczenia i pojęcia wstępne Niech f X Y będzie relacją. Relację f nazywamy funkcją, o ile dla dowolnego x X istnieje y Y taki, że (x, y) f oraz dla
n=0 (n + r)a n x n+r 1 (n + r)(n + r 1)a n x n+r 2. Wykorzystując te obliczenia otrzymujemy, że lewa strona równania (1) jest równa
Równanie Bessela Będziemy rozważać następujące równanie Bessela x y xy x ν )y 0 ) gdzie ν 0 jest pewnym parametrem Rozwiązania równania ) nazywamy funkcjami Bessela rzędu ν Sprawdzamy, że x 0 jest regularnym
Matematyka dyskretna dla informatyków
Matematyka dyskretna dla informatyków Część I: Elementy kombinatoryki Jerzy Jaworski Zbigniew Palka Jerzy Szymański Uniwersytet im. Adama Mickiewicza Poznań 2007 4 Zależności rekurencyjne Wiele zależności
O pewnych związkach teorii modeli z teorią reprezentacji
O pewnych związkach teorii modeli z teorią reprezentacji na podstawie referatu Stanisława Kasjana 5 i 12 grudnia 2000 roku 1. Elementy teorii modeli Będziemy rozważać język L składający się z przeliczalnej
Seria zadań z Algebry IIR nr kwietnia 2017 r. i V 2 = B 2, B 4 R, gdzie
Seria zadań z Algebry IIR nr 29 kwietnia 207 r Notacja: We wszystkich poniższych zadaniach K jest ciałem, V wektorow a nad K zaś jest przestrzeni a Zadanie Niechaj V = K 4 [t] Określmy podprzestrzenie
Języki i Paradygmaty Programowania
Języki i Paradygmaty Programowania Odkrywamy Haskell Marcin Benke 24 lutego 2014 Odkrywamy Haskell Haskell zasadniczo kompilowany, ale też interpreter: ghci $ ghci GHCi, version 7.6.2: http://www.haskell.org/ghc/
1. R jest grupą abelową względem działania + (tzn. działanie jest łączne, przemienne, istnieje element neutralny oraz element odwrotny)
Rozdział 1 Pierścienie i ideały Definicja 1.1 Pierścieniem nazywamy trójkę (R, +, ), w której R jest zbiorem niepustym, działania + : R R R i : R R R są dwuargumentowe i spełniają następujące warunki dla
iks plus trzy dzielone na dwa iks razy iks plus pięć
ELIMINACJE SZKOLNE RACHUNEK LAMBDA NOTATKI Z WYKŁADU - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Definicje wyższego poziomu
Definicje wyższego poziomu Interpreter Scheme-a nie będzie narzekad w przypadku wystąpienia niezdefionowanej zmiennej w ciele wyrażenia lambda dopóki nie będzie zastosowana Przykład braku informacji o
1 Relacje i odwzorowania
Relacje i odwzorowania Relacje Jacek Kłopotowski Zadania z analizy matematycznej I Wykazać, że jeśli relacja ρ X X jest przeciwzwrotna i przechodnia, to jest przeciwsymetryczna Zbadać czy relacja ρ X X
Algebra Liniowa 2 (INF, TIN), MAP1152 Lista zadań
Algebra Liniowa 2 (INF, TIN), MAP1152 Lista zadań Przekształcenia liniowe, diagonalizacja macierzy 1. Podano współrzędne wektora v w bazie B. Znaleźć współrzędne tego wektora w bazie B, gdy: a) v = (1,
Matematyka dyskretna
Matematyka dyskretna Wykład 6: Ciała skończone i kongruencje Gniewomir Sarbicki 24 lutego 2015 Relacja przystawania Definicja: Mówimy, że liczby a, b Z przystają modulo m (co oznaczamy jako a = b (mod
0 --> 5, 1 --> 7, 2 --> 9, 3 -->1, 4 --> 3, 5 --> 5, 6 --> 7, 7 --> 9, 8 --> 1, 9 --> 3.
(Aktualizacja z dnia 3 kwietnia 2013) MATEMATYKA DYSKRETNA - informatyka semestr 2 (lato 2012/2013) Zadania do omówienia na zajęciach w dniach 21 i 28 kwietnia 2013 ZESTAW NR 3/7 (przykłady zadań z rozwiązaniami)
Indukcja. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak
Indukcja Materiały pomocnicze do wykładu wykładowca: dr Magdalena Kacprzak Charakteryzacja zbioru liczb naturalnych Arytmetyka liczb naturalnych Jedną z najważniejszych teorii matematycznych jest arytmetyka
1 Określenie pierścienia
1 Określenie pierścienia Definicja 1. Niech P będzie zbiorem, w którym określone są działania +, (dodawanie i mnożenie). Mówimy, że struktura (P, +, ) jest pierścieniem, jeżeli spełnione są następujące
Gramatyki atrybutywne
Gramatyki atrybutywne, część 1 (gramatyki S-atrybutywne Teoria kompilacji Dr inŝ. Janusz Majewski Katedra Informatyki Gramatyki atrybutywne Do przeprowadzenia poprawnego tłumaczenia, oprócz informacji
Matematyka dyskretna
Matematyka dyskretna Wykład 6: Ciała skończone i kongruencje Gniewomir Sarbicki 2 marca 2017 Relacja przystawania Definicja: Mówimy, że liczby a, b Z przystają modulo m (co oznaczamy jako a = b (mod m)),
Rekurencyjna przeliczalność
Rekurencyjna przeliczalność Jerzy Pogonowski Zakład Logiki Stosowanej UAM www.logic.amu.edu.pl pogon@amu.edu.pl Funkcje rekurencyjne Jerzy Pogonowski (MEG) Rekurencyjna przeliczalność Funkcje rekurencyjne
Funkcje: wielomianowa, wykładnicza, logarytmiczna wykład 2
Funkcje: wielomianowa, wykładnicza, logarytmiczna wykład 2 dr Mariusz Grządziel semestr zimowy 2013 Potęgowanie Dla dowolnej liczby dodatniej a oraz liczy wymiernej w = p/q definiujemy: a w (a 1/q ) p.
Metoda tabel semantycznych. Dedukcja drogi Watsonie, dedukcja... Definicja logicznej konsekwencji. Logika obliczeniowa.
Plan Procedura decyzyjna Reguły α i β - algorytm Plan Procedura decyzyjna Reguły α i β - algorytm Logika obliczeniowa Instytut Informatyki 1 Procedura decyzyjna Logiczna konsekwencja Teoria aksjomatyzowalna
Wstęp do Programowania potok funkcyjny
Wstęp do Programowania potok funkcyjny Marcin Kubica 2010/2011 Outline 1 Kilka podstawowych pojęć Definition Programy imperatywne zmieniają stan, czyli wartości zmiennych. Asercja = warunek logiczny, który
Informatyka Stosowana. a b c d a a b c d b b d a c c c a d b d d c b a
Działania na zbiorach i ich własności Informatyka Stosowana 1. W dowolnym zbiorze X określamy działanie : a b = b. Pokazać, że jest to działanie łączne. 2. W zbiorze Z określamy działanie : a b = a 2 +
ALGEBRA Z GEOMETRIĄ PIERŚCIENIE, CIAŁA I HOMOMORFIZMY
ALGEBRA Z GEOMETRIĄ 1/10 PIERŚCIENIE, CIAŁA I HOMOMORFIZMY Piotr M. Hajac Uniwersytet Warszawski Wykład 3, 16.10.2013 Typeset by Jakub Szczepanik. Definicja pierścienia 2/10 Zbiór R wyposażony w dwa działania
Podstawy Programowania C++
Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:
Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018
Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy
Algebra liniowa. 1. Macierze.
Algebra liniowa 1 Macierze Niech m oraz n będą liczbami naturalnymi Przestrzeń M(m n F) = F n F n będącą iloczynem kartezjańskim m egzemplarzy przestrzeni F n z naturalnie określonymi działaniami nazywamy
Języki programowania Haskell
Języki programowania Haskell zadanie projektowe nr. 4 2014/15 K. Turowski, T. Goluch 1. Kompilacja, uruchamianie i Hello world Kompilacja i uruchamianie: ghc --make hello.hs./hello Interaktywny interpreter:
Lab 10. Funkcje w argumentach funkcji metoda Newtona. Synonimy nazw typów danych. Struktury. Tablice struktur.
Języki i paradygmaty programowania 1 studia stacjonarne 2018/19 Lab 10. Funkcje w argumentach funkcji metoda Newtona. Synonimy nazw typów danych. Struktury. Tablice struktur. 1. Identyfikator funkcji,
Podstawowe struktury algebraiczne
Rozdział 1 Podstawowe struktury algebraiczne 1.1. Działania wewnętrzne Niech X będzie zbiorem niepustym. Dowolną funkcję h : X X X nazywamy działaniem wewnętrznym w zbiorze X. Działanie wewnętrzne, jak
Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska
Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl Wydział Mechaniczny Technologiczny Politechnika Śląska Języki programowania z programowaniem obiektowym Laboratorium
Teoria miary. WPPT/Matematyka, rok II. Wykład 5
Teoria miary WPPT/Matematyka, rok II Wykład 5 Funkcje mierzalne Niech (X, F) będzie przestrzenią mierzalną i niech f : X R. Twierdzenie 1. NWSR 1. {x X : f(x) > a} F dla każdego a R 2. {x X : f(x) a} F
PARADYGMATY I JĘZYKI PROGRAMOWANIA. Haskell. (w11)
PARADYGMATY I JĘZYKI PROGRAMOWANIA Haskell. (w11) !!! 2 Brian Beckman o Monadach 3 Brian Beckman: Don't fear the Monad - YouTube Plan wykładu 4 Typy Funkcje Preludium take, cycle zip, unzip, zipwith filter,
Wykład 4 Udowodnimy teraz, że jeśli U, W są podprzetrzeniami skończenie wymiarowej przestrzeni V to zachodzi wzór: dim(u + W ) = dim U + dim W dim(u
Wykład 4 Udowodnimy teraz, że jeśli U, W są podprzetrzeniami skończenie wymiarowej przestrzeni V to zachodzi wzór: dim(u + W ) = dim U + dim W dim(u W ) Rzeczywiście U W jest podprzetrzenią przestrzeni
Lista zadań - Relacje
MATEMATYKA DYSKRETNA Lista zadań - Relacje Zadania obliczeniowe Zad. 1. Która z poniższych relacji jest funkcją? a) Relacja składająca się ze wszystkich par uporządkowanych, których poprzednikami są studenci,
Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja
Rekurencja, schemat rekursji i funkcje pierwotnie rekurencyjne
Rekurencja, schemat rekursji i funkcje pierwotnie rekurencyjne Elementy Logiki i Teorii Mnogości 2015/2016 Zadanie 1. Oblicz iteracyjnie i rekurencyjnie f(4), gdzie f jest funkcją określoną na zbiorze
REKURENCJA W JĘZYKU HASKELL. Autor: Walczak Michał
REKURENCJA W JĘZYKU HASKELL Autor: Walczak Michał CZYM JEST REKURENCJA? Rekurencja zwana rekursją, polega na wywołaniu przez funkcję samej siebie. Algorytmy rekurencyjne zastępują w pewnym sensie iteracje.
Jak należy się spodziewać, mamy. Zauważmy jednak, że nie zachodzi równość
11. Wykład 11: Rachunek λ. Obliczenia i obliczalność. Rachunek λ jest systemem pozornie bardzo prostym. Abstrakcja i aplikacja wydają się trywialnymi operacjami, i może się zdawać, że niczego ciekawego
7 Twierdzenie Fubiniego
M. Beśka, Wstęp do teorii miary, wykład 7 19 7 Twierdzenie Fubiniego 7.1 Miary produktowe Niech i będą niepustymi zbiorami. Przez oznaczmy produkt kartezjański i tj. zbiór = { (x, y : x y }. Niech E oraz
wstęp do informatyki i programowania część testowa (25 pyt. / 60 min.)
egzamin podstawowy 7 lutego 2017 r. wstęp do informatyki i programowania część testowa (25 pyt. / 60 min.) Instytut Informatyki Uniwersytetu Wrocławskiego Paweł Rzechonek imię, nazwisko i nr indeksu:..............................................................
Algebra Abstrakcyjna i Kodowanie Lista zadań
Algebra Abstrakcyjna i Kodowanie Lista zadań Jacek Cichoń, WPPT PWr, Wrocław 2016/17 1 Grupy Zadanie 1 Pokaż, że jeśli grupy G i H są abelowe, to grupa G H też jest abelowa. Zadanie 2 Niech X będzie niepustym
Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott
Struktury danych i złożoność obliczeniowa Wykład 7 Prof. dr hab. inż. Jan Magott Problemy NP-zupełne Transformacją wielomianową problemu π 2 do problemu π 1 (π 2 π 1 ) jest funkcja f: D π2 D π1 spełniająca
12. Wykład 12: Algebraiczne domkniecie ciała. Wielokrotne pierwiastki wielomianów. Rózniczkowanie wielomianów. Elementy rozdzielcze.
12. Wykład 12: Algebraiczne domkniecie ciała. Wielokrotne pierwiastki wielomianów. Rózniczkowanie wielomianów. Elementy rozdzielcze. Rozszerzenia rozdzielcze i pojedyncze. Rozszerzenia normalne. 12.1.
Pytania i polecenia podstawowe
Pytania i polecenia podstawowe Liczby zespolone a) 2 i 1 + 2i 1 + 2i 3 + 4i, c) 1 i 2 + i a) 4 + 3i (2 i) 2, c) 1 3i a) i 111 (1 + i) 100, c) ( 3 i) 100 Czy dla dowolnych liczb z 1, z 2 C zachodzi równość:
System BCD z κ. Adam Slaski na podstawie wykładów, notatek i uwag Pawła Urzyczyna. Semestr letni 2009/10
System BCD z κ Adam Slaski na podstawie wykładów, notatek i uwag Pawła Urzyczyna Semestr letni 2009/10 Rozważamy system BCD ze stałą typową κ i aksjomatami ω κ κ i κ ω κ. W pierwszej części tej notatki
Funkcje: wielomianowa, wykładnicza, logarytmiczna wykład 3
Funkcje: wielomianowa, wykładnicza, logarytmiczna wykład 3 dr Mariusz Grzadziel Katedra Matematyki, Uniwersytet Przyrodniczy we Wrocławiu semestr zimowy 2016/2017 Potęgowanie Dla dowolnej liczby dodatniej
Projekt 4: Programowanie w logice
Języki Programowania Projekt 4: Programowanie w logice Środowisko ECL i PS e W projekcie wykorzystane będzie środowisko ECL i PS e. Dostępne jest ono pod adresem http://eclipseclp.org/. Po zainstalowaniu
METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02
METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się
Wstęp do Programowania potok funkcyjny
i programowanie dynamiczne Wstęp do Programowania potok funkcyjny Marcin Kubica 2010/2011 i programowanie dynamiczne Outline 1 i programowanie dynamiczne i programowanie dynamiczne Rekurencyjny zapis rozwiązania
Metody Rozmyte i Algorytmy Ewolucyjne
mgr inż. Wydział Matematyczno-Przyrodniczy Szkoła Nauk Ścisłych Uniwersytet Kardynała Stefana Wyszyńskiego Podstawowe operatory genetyczne Plan wykładu Przypomnienie 1 Przypomnienie Metody generacji liczb
Algorytm. a programowanie -
Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik
Algorytm Euklidesa. ZADANIE 1. Oblicz korzystając z algorytmu Euklidesa: (a) NWD(120, 195), (b) NWD(80, 208), (c) NWD(36, 60, 90),
Algorytm Euklidesa ZADANIE 1. Oblicz korzystając z algorytmu Euklidesa: (a) NWD(120, 195), (b) NWD(80, 208), (c) NWD(36, 60, 90), (d) NWD(120, 168, 280), (e) NWD(30, 42, 70, 105), (f) NWW[120, 195], (g)
Baza w jądrze i baza obrazu ( )
Przykład Baza w jądrze i baza obrazu (839) Znajdź bazy jądra i obrazu odwzorowania α : R 4 R 3, gdzie α(x, y, z, t) = (x + 2z + t, 2x + y 3z 5t, x y + z + 4t) () zór ten oznacza, że α jest odwzorowaniem
WYMAGANIE EDUKACYJNE Z MATEMATYKI W KLASIE II GIMNAZJUM. dopuszczającą dostateczną dobrą bardzo dobrą celującą
1. Statystyka odczytać informacje z tabeli odczytać informacje z diagramu 2. Mnożenie i dzielenie potęg o tych samych podstawach 3. Mnożenie i dzielenie potęg o tych samych wykładnikach 4. Potęga o wykładniku
Algorytmy w teorii liczb
Łukasz Kowalik, ASD 2004: Algorytmy w teorii liczb 1 Algorytmy w teorii liczb Teoria liczb jest działem matemtyki dotyczącym własności liczb naturalnych. Rozważa się zagadnienia związane z liczbami pierwszymi,
Analiza funkcjonalna 1.
Analiza funkcjonalna 1. Wioletta Karpińska Semestr letni 2015/2016 0 Bibliografia [1] Banaszczyk W., Analiza matematyczna 3. Wykłady. (http://math.uni.lodz.pl/ wbanasz/am3/) [2] Birkholc A., Analiza matematyczna.
Laboratorium nr 1. i 2.
Laboratorium nr 1. i 2. Celem laboratorium jest zapoznanie się ze zintegrowanym środowiskiem programistycznym, na przykładzie podstawowych aplikacji z obsługą standardowego wejścia wyjścia, podstawowych
Obliczenia iteracyjne
Lekcja Strona z Obliczenia iteracyjne Zmienne iteracyjne (wyliczeniowe) Obliczenia iteracyjne wymagają zdefiniowania specjalnej zmiennej nazywanej iteracyjną lub wyliczeniową. Zmienną iteracyjną od zwykłej
Podstawy programowania funkcjonalnego
Podstawy programowania funkcjonalnego haskell.mariuszrozycki.pl Mariusz Różycki Churchill College, University of Cambridge rev. 2014.03.27.1 Wprowadzenie Materiały haskell.mariuszrozycki.pl Slajdy (w tym
Funkcja kwadratowa. f(x) = ax 2 + bx + c = a
Funkcja kwadratowa. Funkcją kwadratową nazywamy funkcję f : R R określoną wzorem gdzie a, b, c R, a 0. f(x) = ax + bx + c, Szczególnym przypadkiem funkcji kwadratowej jest funkcja f(x) = ax, a R \ {0}.
Programowanie. Lista zadań nr 15. Na ćwiczenia 11, 19 i 23 czerwca 2008
Programowanie Lista zadań nr 15 Na ćwiczenia 11, 19 i 23 czerwca 2008 Zadanie 1. Pokaż, że w systemie z polimorfizmem parametrycznym można napisać program P n rozmiaru O(n), którego typ ma rozmiar 2 2Ω(n).
Ćwiczenia 1 - Pojęcie grupy i rzędu elementu
Algebra 1 Ćwiczenia 1 - Pojęcie grupy i rzędu elementu Definicje i podstawowe własności Definicja 1. Niech X będzie niepustym zbiorem. Działaniem w zbiorze X nazywamy dowolne odwzorowanie (funkcję) działające
IMIĘ NAZWISKO... grupa C... sala Egzamin ELiTM I
IMIĘ NAZWISKO............................ grupa C... sala 10... Egzamin ELiTM I 02.02.15 1. 2. 3. 4.. 1. (8 pkt.) Niech X a,b = {(x, y) R 2 : (x b) 2 + (y 1 b )2 a 2 } dla a, b R, a > 0, b 0. Wyznaczyć:
lekcja 8a Gry komputerowe MasterMind
lekcja 8a Gry komputerowe MasterMind Posiadamy już elementarną wiedzę w zakresie programowania. Pora więc zabrać się za rozwiązywanie problemów bardziej złożonych, które wymagają zastosowania typowych
Matematyka dyskretna
Matematyka dyskretna Wykład 4: Podzielność liczb całkowitych Gniewomir Sarbicki Dzielenie całkowitoliczbowe Twierdzenie: Dla każdej pary liczb całkowitych (a, b) istnieje dokładnie jedna para liczb całkowitych
Wieczorowe Studia Licencjackie Wrocław, Wykład nr 6 (w oparciu o notatki K. Lorysia, z modyfikacjami) Sito Eratostenesa
Wieczorowe Studia Licencjackie Wrocław, 7.11.2006 Wstęp do programowania Wykład nr 6 (w oparciu o notatki K. Lorysia, z modyfikacjami) Sito Eratostenesa Zaprezentujemy teraz algorytm na wyznaczanie wszystkich
PLAN WYNIKOWY PROSTO DO MATURY KLASA 1 ZAKRES PODSTAWOWY
PLAN WYNIKOWY PROSTO DO MATURY KLASA 1 ZAKRES PODSTAWOWY Copyright by Nowa Era Sp. z o.o. Warszawa 019 Liczba godzin TEMAT ZAJĘĆ EDUKACYJNYCH Język matematyki 1 Wzory skróconego mnożenia 3 Liczby pierwsze,
Podstawowe struktury algebraiczne
Maciej Grzesiak Podstawowe struktury algebraiczne 1. Wprowadzenie Przedmiotem algebry było niegdyś przede wszystkim rozwiązywanie równań. Obecnie algebra staje się coraz bardziej nauką o systemach matematycznych.
vf(c) =, vf(ft 1... t n )=vf(t 1 )... vf(t n ).
6. Wykład 6: Rachunek predykatów. Język pierwszego rzędu składa się z: symboli relacyjnych P i, i I, gdzie (P i ) oznaczać będzie ilość argumentów symbolu P i, symboli funkcyjnych f j, j J, gdzie (f j
Funkcja kwadratowa. f(x) = ax 2 + bx + c,
Funkcja kwadratowa. Funkcją kwadratową nazywamy funkcję f : R R określoną wzorem gdzie a, b, c R, a 0. f(x) = ax 2 + bx + c, Szczególnym przypadkiem funkcji kwadratowej jest funkcja f(x) = ax 2, a R \
Definicja i własności wartości bezwzględnej.
Równania i nierówności z wartością bezwzględną. Rozwiązywanie układów dwóch (trzech) równań z dwiema (trzema) niewiadomymi. Układy równań liniowych z parametrem, analiza rozwiązań. Definicja i własności
Relacje. opracował Maciej Grzesiak. 17 października 2011
Relacje opracował Maciej Grzesiak 17 października 2011 1 Podstawowe definicje Niech dany będzie zbiór X. X n oznacza n-tą potęgę kartezjańską zbioru X, tzn zbiór X X X = {(x 1, x 2,..., x n ) : x k X dla
1 Zbiory. 1.1 Kiedy {a} = {b, c}? (tzn. podać warunki na a, b i c) 1.2 Udowodnić, że A {A} A =.
1 Zbiory 1.1 Kiedy {a} = {b, c}? (tzn. podać warunki na a, b i c) 1.2 Udowodnić, że A {A} A =. 1.3 Pokazać, że jeśli A, B oraz (A B) (B A) = C C, to A = B = C. 1.4 Niech {X t } będzie rodziną niepustych
Teoria liczb. Magdalena Lemańska. Magdalena Lemańska,
Teoria liczb Magdalena Lemańska Literatura Matematyka Dyskretna Andrzej Szepietowski http://wazniak.mimuw.edu.pl/ Discrete Mathematics Seymour Lipschutz, Marc Lipson Wstęp Teoria liczb jest dziedziną matematyki,
- nawiasy kwadratowe oznaczają, że to lista
Haskell jest statycznym typem języka: - wszystkie typy i wyrażenia są znane w czasie kompilacji ( zwiększa to bezpieczeństwo kodu). Podawanie typów zmiennych i argumentów funkcji jest zbędne, gdyż Haskel
ALGEBRA Z GEOMETRIĄ CIAŁO FUNKCJI WYMIERNYCH
ALGEBRA Z GEOMETRIĄ 1/10 CIAŁO FUNKCJI WYMIERNYCH Piotr M. Hajac Uniwersytet Warszawski Wykład 7, 13.11.2013 Typeset by Jakub Szczepanik. Ułamki pierścienia całkowitego Cel: Wprowadzenie pojęcia funkcji