Lösung: InfA - Übungsblatt 07
|
|
- Mathilde Glöckner
- vor 6 Jahren
- Abrufe
Transkript
1 Lösung: InfA - Übungsblatt 07 Michele Ritschel & Marcel Schilling 23. Dezember 2008 Verwendete Abkürzungen: Beweis, vollständige Induktion, IA: Induktionsanfang/Induktionsanker, IS: Induktionsschritt/Induktionssprung, IV: Induktionsvorraussetzung ( =IB: Induktionsbehauptung) 1 Vollständige Induktion I Zeigen Sie mit vollständiger Induktion, dass für alle natürlichen Zahlen n gilt: i t e r n id = id Dabei ist die Iterationsfunktion definiert durch i t e r : : Int > ( a >a ) > ( a >a ) i t e r n f n > 0 = f. i t e r (n 1) f i t e r. 1 o t h e r w i s e = id i t e r. 2 und id :: a >a ist die polymorphe Identitätsfunktion, durch id x = x gegeben. IA: n = 0 iter 0 id iter.2 = id IS: iter (n 1) id = id iter n id = id iter n id iter.1 = id. iter (n 1) id f.g = f(g) = id ( iter (n 1) id) IV = id id id = id 1
2 2 Vollständige Induktion II Beweisen Sie mittels Indution für alle endlichen Listen (von Listen) xs und alle Funktionen f, dass gilt concat (map (map f) xs) = map f (concat xs) Zur Erinnerung: concat : : [ [ a ] ] > [ a ] concat [ ] = [ ] concat. 1 concat ( x : xs ) = x++concat xs concat. 2 map g [ ] = [ ] map. 1 map g ( x : xs)= g x : map g xs map. 2 Vorraussetzung: (++) : : [ a ] > [ a ] > [ a ] (++) l s 1 [ ] = l s 1 (++.1) (++) [ ] l s 2 = l s 2 (++.2) (++) ( x1 : xs1 ) l s 2 = x1 : ( xs1++l s 2 ) (++.3) Lemma: map f ys ++ map f zs = map f (ys ++ zs) VI über Länge ys: IA: Länge ys = 0 ( ys = []) map f [] ++ map f zs map.1 = []++map f zs ++.2 = map f zs ++.2 = map f ([]++zs) IS: map f ys ++ map f zs = map f (ys++zs) map f (y:ys) ++ map f zs = map f ((y:ys)++zs) map f (y:ys) ++ map f zs map.2 = (f y : map f ys) ++ map f zs ++.3 = f y :(map f ys ++ map f zs) IV =f y :map f (ys++zs) map.2 = map f (y:(ys++zs)) ++.3 = map f ((y:ys)++zs) IA: Länge xs = 0 ( xs = []) concat (map (map f) []) map.1 = concat [] concat.1 = [] map f (concat []) concat.1 = map f [] map.1 = [] 2
3 concat (map (map f) []) = [] map f (concat []) = [] concat (map (map f) []) = map f (concat []) IS: concat (map (map f) xs) = map f (concat xs) concat (map (map f) (x:xs)) = map f (concat (x:xs)) concat (map (map f) (x:xs)) map.2 = concat (map f x : map (map f) xs) concat.2 = (map f x)++concat (map (map f) xs) IV =(map f x)++(map f (concat xs)) Lemma = (map f (x++(concat xs))) concat.2 = (map f ((concat x:xs))) 3 Vollständige Induktion III Beweisen Sie mittels vollständiger Induktion über die Listenlänge, dass für alle Listen xs gilt: length ( reverse xs) = length xs wobei reverse die Funktion ist, die eine Liste umdreht, definiert mittels: r e v e r s e [ ] = [ ] r e v e r s e. 1 r e v e r s e ( z : zs ) = r e v e r s e zs ++ [ z ] r e v e r s e. 2 Vorraussetzung: l e n g t h : : [ a ] > Int l e n g t h [ ] = 0 length. 1 l e n g t h ( y : ys ) = 1 + l e ngth ys length : : [ a ] > [ a ] > [ a ] ++ l s 1 [ ] = l s [ ] l s 2 = l s ( x1 : xs1 ) l s 2 = x1 : ( xs1++l s 2 ) ++.3 Lemma: length (ys++zs) = length ys + length zs VI über Länge ys: IA: Länge ys = 0 ( ys=[]) length ([]++zs) ++.2 = length zs a=0+a = 0 + length zs length.1 = length [] + length zs 3
4 IS: length (ys++zs) = length ys + length zs length ((y:ys)++zs) = length (y:ys) + length zs length ((y:ys)++zs) ++.3 = length (ys:( ys++zs) length.2 = 1 + length (ys++zs) IV =1 + (length ys + length zs) b+(c+d)=(b+c)+d = (1 + length ys) + length zs =length (y:ys) + length zs IA: Länge xs = 0 ( xs = []) length (reverse []) reverse.1 = length [] IS: length( reverse xs) = length xs length( reverse (x:xs)) = length (x:xs) length (reverse (x:xs)) reverse.2 = length ( reverse xs ++ [x]) Lemma = (length ( reverse xs)) + (length [x]) IV =(length xs) + (length [x]) a+b=b+a = (length [ x]) + (length xs) [x]=x:[] = (length (x :[])) + (length xs) length.2 = (1+ (length [])) + (length xs) length.1 = (1+0) + (length xs)) c+0=c = 1 + (length xs) length.2 = (length x:xs) 4 Linksfaltung Beschreiben und begründen Sie verbal, was folgende Linksfaltung tut. wastuich xs1 xs2 = f o l d l func xs1 xs2 func [ ] = [ ] func ( x : xs ) y x = = y = xs o t h e r w i s e = x : ( func xs y ) Die Funktion wastuich erhält zwei Listen über eine Typen, der Gleichheitsabfragen erlaubt. Aus der ersten Liste streicht sie alle Einträge so oft, wie sie auch in der zweiten Liste enthalten sind und gibt dann die erste Liste ohne diese 4
5 übereinstimmenden Einträge wieder zurück. Dies tut sie mit Hilfe einer Linksfaltung ( foldl ). foldl ruft die Funktion func, die das erste Vorkommen eines Werts in einer Liste entfernt, nach und nach mit allen Elementen der zweiten Liste auf. Bekommt func die leere Liste gibt sie auch die leere Liste zurück. Erhält foldl eine nichtleere Liste ruft diese func mit der ersten Liste auf und vergleicht diese Liste mit dem Kopf der zweiten Liste. Ist dieser Kopf in der ersten Liste enthalten, so streicht sie ihn und gibt den Rest der ersten Liste zurück. Im anderen Fall, also wenn der Kopf der zweiten Liste nicht in der ersten enthalten ist, gibt die Funktion die Liste ohne Veränderung zurück. Dieser Vorgang geht rekursiv weiter bis die zweite Liste die leere Liste ist, wobei jeweils das Ergebnis des vorherigen Durchlaufs als erstes Argument für func dient. Dies entspricht der rekursiven Definition einer Linksfaltung, bei der für eine nichtleere Liste (x:xs) (hier xs2) der Startwert (hier xs1) geändert wird: f o l d l f e ( x : xs ) = f o l d l f ( f e x ) xs 5
Funktionale Programmierung mit Haskell
Funktionale Programmierung mit Haskell Dr. Michael Savorić Hohenstaufen-Gymnasium (HSG) Kaiserslautern Version 20120622 Überblick Wichtige Eigenschaften Einführungsbeispiele Listenerzeugung und Beispiel
MehrFormale Methoden in der Informatik Wiederholung klassische Logik Konkrete Datentypen (algebraische Strukturen) Abstrakte Datentypen
Was bisher geschah Formale Methoden in der Informatik Wiederholung klassische Logik Konkrete Datentypen (algebraische Strukturen) Abstrakte Datentypen Syntax: Signatur Semantik: Axiome (FOL-Formeln, meist
MehrFelder. November 5, 2014
Felder Universität Bielefeld AG Praktische Informatik November 5, 2014 Felder: Datenstrukturen mit konstantem Zugriff Felder nennt man auch, Vektoren, Matrizen,... Konstanter Zugriff heisst: Zugriff auf
MehrFunktionale Programmierung ALP I. Funktionen höherer Ordnung. Teil 2 SS 2013. Prof. Dr. Margarita Esponda. Prof. Dr.
ALP I Funktionen höherer Ordnung Teil 2 SS 2013 Funktionen höherer Ordnung Nehmen wir an, wir möchten alle Zahlen innerhalb einer Liste miteinander addieren addall:: (Num a) => [a -> a addall [ = 0 addall
MehrLösungvorschlag zum Übungsblatt 6: Software-Entwicklung I (WS 2007/08)
Prof. Dr. A. Poetzsch-Heffter Dipl.-Inform. J. O. Blech Dipl.-Inform. M. J. Gawkowski Dipl.-Inform. N. Rauch TU Kaiserslautern Fachbereich Informatik AG Softwaretechnik Lösungvorschlag zum Übungsblatt
MehrProgrammieren in Haskell Programmiermethodik
Programmieren in Haskell Programmiermethodik Peter Steffen Universität Bielefeld Technische Fakultät 12.01.2011 1 Programmieren in Haskell Bisherige Themen Was soll wiederholt werden? Bedienung von hugs
MehrProgrammierung 1 - Repetitorium
WS 2002/2003 Programmierung 1 - Repetitorium Andreas Augustin und Marc Wagner Homepage: http://info1.marcwagner.info Donnerstag, den 10.04.03 Kapitel 7 Korrektheit 7.1 Abstrakte Prozeduren Abstrakte Prozedur
MehrAgenda. 1 Einleitung. 2 Binäre Bäume. 3 Binäre Suchbäume. 4 Rose Trees. 5 Zusammenfassung & Ausblick. Haskell Bäume. Einleitung.
Vortrag: Bäume in Haskell Bäume in Haskell Vortrag Christoph Forster Thomas Kresalek Fachhochschule Wedel University of Applied Sciences 27. November 2009 Christoph Forster, Thomas Kresalek 1/53 Vortrag
MehrROHRE FUER HOHE TEMPERATUREN ASTM A 106
ROHRE FUER HOHE TEMPERATUREN ASTM A 106 1/8 10,300 1,240 0,280 10 1/8 10,300 1,450 0,320 30 1/8 10,300 1,730 0,370 STD 40 1/8 10,300 2,410 0,470 XS 80 1/4 13,700 1,650 0,490 10 1/4 13,700 1,850 0,540 30
Mehrexpr :: Expr expr = Mul (Add (Const 3) (Const 4)) (Div (Sub (Const 73) (Const 37)) (Const 6))
1 - Korrektur 2 - Abstrakte Datentypen für arithmetische Ausdrücke Der Datentyp Wir beginnen zunächst mit dem algebraischen Datentyp für Ausdrücke. Hierfür definieren wir einen Konstruktor Number für Zahlen,
MehrProgrammieren in Haskell. Stefan Janssen. Strukturelle Rekursion. Universität Bielefeld AG Praktische Informatik. 10.
Universität Bielefeld AG Praktische Informatik 10. Dezember 2014 Wiederholung: Schema: f :: [σ] -> τ f [] = e 1 f (a : as) = e 2 where s = f as wobei e 1 und e 2 Ausdrücke vom Typ τ sind und e 2 die Variablen
MehrProgrammieren in Haskell Einstieg in Haskell
Programmieren in Haskell Einstieg in Haskell Peter Steffen Universität Bielefeld Technische Fakultät 24.10.2008 1 Programmieren in Haskell Was wir heute machen Umfrage: Wer hat den Hugs ausprobiert? Ausdrücke
MehrProgrammieren in Haskell
Programmieren in Haskell Wir steigen ein... Programmieren in Haskell 1 Was wir heute machen Umfrage: Wer hat den Hugs ausprobiert? Ausdrücke und Werte Datentypen Funktionen Aufgabe für diese Woche Programmieren
MehrStrukturelle Rekursion und Induktion
Kapitel 2 Strukturelle Rekursion und Induktion Rekursion ist eine konstruktive Technik für die Beschreibung unendlicher Mengen (und damit insbesondere für die Beschreibung unendliche Funktionen). Induktion
MehrGrundlagen der Programmierung 2 (1.C)
Grundlagen der Programmierung 2 (1.C) Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 3. Mai 2006 Funktionen auf Listen: map map :: (a -> b) -> [a] -> [b] map f [] = []
MehrFunktionen höherer Ordnung
Eine Funktion wird als Funktion höherer Ordnung bezeichnet, wenn Funktionen als Argumente verwendet werden, oder wenn eine Funktion als Ergebnis zurück gegeben wird. Beispiel: twotimes :: ( a -> a ) ->
Mehr1.4 Die Ackermannfunktion
a : N 2 N : Beispiele: a(0, y) = y + 1, a(x, 0) = a(x 1, 1), x > 0, a(x, y) = a(x 1, a(x, y 1)), x, y > 0. Beh.: a(1, y) = y + 2 Bew. durch Induktion über y: a(1, 0) = a(0, 1) = 2 = 0+2. a(1, y + 1) =
MehrHaskell Seminar Abstrakte Datentypen. Nils Bardenhagen ms2725
Haskell Seminar Abstrakte Datentypen Nils Bardenhagen ms2725 Gliederung Konzept Queue Module Sets Bags Flexible Arrays Fazit Abstrakte Datentypen (ADT) Definition: Eine Zusammenfassung von Operationen,
MehrGrundprinzipien der funktionalen Programmierung
Grundprinzipien der funktionalen Programmierung Funktionen haben keine Seiteneffekte Eine Funktion berechnet einen Ausgabewert der nur von den Eingabewerten abhängt: 12 inputs + output 46 34 2 Nicht nur
MehrWas bisher geschah Funktionale Programmierung in Haskell: Algebraische Datentypen Pattern Matching Polymorphie Typklassen Rekursive Datentypen:
Was bisher geschah Funktionale Programmierung in Haskell: Algebraische Datentypen Pattern Matching Polymorphie Typklassen Rekursive Datentypen: Peano-Zahlen, Listen, Bäume Rekursive Funktionen strukturelle
MehrDefinieren Sie eine Funktion circlearea zur Berechnung der Fläche eines Kreises mit gegebenen Radius (Float).
Haskell Funktionen Definieren Sie eine Funktion circlearea zur Berechnung der Fläche eines Kreises mit gegebenen Radius (Float). circlearea :: Float -> Float circlearea radius = 2 * pi * radius^2 Definieren
MehrTeil 4: Rekursion und Listen
Einführung in das Programmieren Prolog Sommersemester 2006 Teil 4: Rekursion und Listen Version 1.0 Gliederung der LV Teil 1: Ein motivierendes Beispiel Teil 2: Einführung und Grundkonzepte Syntax, Regeln,
Mehr2.5 Listen. Kurzschreibweise: [42; 0; 16] Listen werden mithilfe von [] und :: konstruiert.
2.5 Listen Listen werden mithilfe von [] und :: konstruiert. Kurzschreibweise: [42; 0; 16] # let mt = [];; val mt : a list = [] # let l1 = 1::mt;; val l1 : int list = [1] # let l = [1;2;3];; val l : int
MehrHaskell, Typen, und Typberechnung. Grundlagen der Programmierung 3 A. Einige andere Programmiersprachen. Typisierung in Haskell
Haskell, Typen, und Typberechnung Grundlagen der Programmierung 3 A Typen, Typberechnung und Typcheck Prof. Dr. Manfred Schmidt-Schauß Ziele: Haskells Typisierung Typisierungs-Regeln Typ-Berechnung Milners
MehrVorlesung Künstliche Intelligenz Alexander Manecke Oliver Schneider Andreas Stoffel 9. Mai 2006
Vorlesung Künstliche Intelligenz 9. Mai 2006 Aufgabe 1: Listen in Prolog a) Den Fall der leeren Liste müssen wir hier nicht betrachten, denn eine leere Liste besitzt kein Maximum. Also ist Standardantwort
MehrInduktion und Rekursion
Induktion und Rekursion Induktion und Rekursion Vorkurs Informatik Theoretischer Teil WS 013/14. Oktober 013 Vorkurs Informatik WS 013/14 1/1 Vollständige Induktion Vorkurs Informatik WS 013/14 /1 Ziel
MehrGrundbegriffe der Informatik Tutorium 2
Grundbegriffe der Informatik Tutorium 2 Tutorium Nr. 32 Philipp Oppermann 13. November 2013 KARLSRUHER INSTITUT FÜR TECHNOLOGIE KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum
MehrProgrammieren in Haskell
Programmieren in Haskell Wir steigen ein... Programmieren in Haskell 1 Was wir heute machen Umfrage: Wer hat den Hugs ausprobiert? Ausdrücke und Werte Datentypen Funktionen Aufgabe für s Wochenende Programmieren
MehrMathematische Grundlagen der Computerlinguistik
Mengen und Mengenoperationen (Teil II) Centrum für Informations- und Sprachverarbeitung (CIS) 2. Juni 2014 Table of Contents 1 2 3 Definition Mengenfamilie Eine Menge, deren sämtliche Elemente selbst wiederum
MehrFunktionale Programmierung mit Haskell
Funktionale Programmierung mit Haskell Prof. Dr. Hans J. Schneider Lehrstuhl für Programmiersprachen und Programmiermethodik Friedrich-Alexander-Universität Erlangen-Nürnberg Sommersemester 2011 I. Die
MehrAlgorithmen. Sortieren 6/1
Algorithmen Sortieren 6/1 Problemstellung Gegeben ist ein Array von Daten Gesucht ist die Umordnung des Arrays anhand eines Sortierkriteriums Vereinfacht hier statt Schlüssel und Vergleichsfunktion einfache
MehrFrage, Fragen und nochmals Fragen
Frage, Fragen und nochmals Fragen Berthold Hoffmann Universität Bremen and DFKI Bremen hof@informatik.uni-bremen.de In diesem Text stehen einige Fragen, die man sich zu den Folien der Veranstaltung Funktionales
MehrFunktionale Programmierung
Funktionale Programmierung Jörg Kreiker Uni Kassel und SMA Solar Technology AG Wintersemester 2011/2012 2 Teil II Typen mit Werten und Ausdruck, sogar listenweise 3 Haskell Programme Programm Module ein
Mehr4. ggt und kgv. Chr.Nelius: Zahlentheorie (SS 2007) 9
Chr.Nelius: Zahlentheorie (SS 2007) 9 4. ggt und kgv (4.1) DEF: Eine ganze Zahl g heißt größter gemeinsamer Teiler (ggt) zweier ganzer Zahlen a und b, wenn gilt: GGT 0 ) g 0 GGT 1 ) g a und g b GGT 2 )
MehrFunktionale Programmierung mit Haskell. Jan Hermanns
Funktionale Programmierung mit Haskell Jan Hermanns 1 Programmiersprachen imperativ deklarativ konventionell OO logisch funktional Fortran Smalltalk Prolog Lisp C Eiffel ML Pascal Java Haskell 2 von Neumann
MehrBeweis durch vollständige Induktion
Skriptteil zur Vorlesung: Proinformatik - Funktionale Programmierung Dr. Marco Block-Berlitz 4.Juli 009 Beweis durch vollständige Induktion Die fünf Peano-Axiome Grundlage für die vollständige Induktion
MehrTutorium - Haskell in der Schule. Ralf Dorn - Dennis Buchmann - Felix Last - Carl Ambroselli
Tutorium - Haskell in der Schule Wer sind wir? Otto-Nagel-Gymnasium in Berlin-Biesdorf Hochbegabtenförderung und MacBook-Schule Leistungskurse seit 2005 Einführung Was ist funktionale Programmierung? Einführung
MehrI. II. I. II. III. IV. I. II. III. I. II. III. IV. I. II. III. IV. V. I. II. III. IV. V. VI. I. II. I. II. III. I. II. I. II. I. II. I. II. III. I. II. III. IV. V. VI. VII. VIII.
MehrVorsicht bei redundanten und unvollständigen Matches!
Vorsicht bei redundanten und unvollständigen Matches! # let n = 7;; val n : int = 7 # match n with 0 -> "null";; Warning: this pattern-matching is not exhaustive. Here is an example of a value that is
MehrKapitel 4: Beweis und Herleitung von Programmen
Funktionale Programmierung (WS2005/2006) 4/1 Kapitel 4: Beweis und Herleitung von Programmen Lernziele dieses Kapitels 1. Bedeutung der referenziellen Transparenz und des Gleichungsbeweisens 2. Strukturelle
MehrGrundlagen der Theoretischen Informatik
Grundlagen der Theoretischen Informatik 3. Endliche Automaten (V) 21.05.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Bis jetzt Determinierte endliche Automaten (DEAs) Indeterminierte
MehrGrammatiken. Einführung
Einführung Beispiel: Die arithmetischen Ausdrücke über der Variablen a und den Operationen + und können wie folgt definiert werden: a, a + a und a a sind arithmetische Ausdrücke Wenn A und B arithmetische
MehrLösung Probeklausur Informatik I
Lösung Probeklausur Informatik I 1 Lösung Aufgabe 1 (5 Punkte) Algorithmen und Programme Was ist der Unterschied zwischen einem Algorithmus und einem Programm? Ein Algorithmus ist eine Vorschrift zur Durchführung
MehrProgrammierung 1 (Wintersemester 2012/13) Lösungsblatt 5 (Kapitel 6)
Fachrichtung 6.2 Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 Programmierung 1 (Wintersemester 2012/13) Lösungsblatt 5 (Kapitel 6) Hinweis: Dieses Zusatzübungsblatt
MehrFormale Methoden 1. Gerhard Jäger 16. Januar Uni Bielefeld, WS 2007/2008 1/19
1/19 Formale Methoden 1 Gerhard Jäger Gerhard.Jaeger@uni-bielefeld.de Uni Bielefeld, WS 2007/2008 16. Januar 2008 2/19 Reguläre Ausdrücke vierte Art (neben Typ-3-Grammatiken, deterministischen und nicht-deterministischen
MehrProgrammieren in Haskell
Programmieren in Haskell Felder (Arrays) Programmieren in Haskell 1 Was wir heute machen Motivationsbeispiel Die Typklasse Ix Felder in Haskell Funktionstabellierung Binäre Suche Pascalsches Dreieck Ein
MehrTheoretische Informatik. Alphabete, Worte, Sprachen
Theoretische Informatik Alphabete, Worte, Sprachen Alphabete, Worte, Sprachen 1. Alphabete und Worte Definitionen, Beispiele Operationen mit Worten Induktionsbeweise 2. Sprachen Definition und Beispiele
MehrWas bisher geschah. deklarative Programmierung. funktionale Programmierung (Haskell):
Was bisher geschah deklarative Programmierung funktional: Programm: Menge von Termgleichungen, Term Auswertung: Pattern matsching, Termumformungen logisch: Programm: Menge von Regeln (Horn-Formeln), Formel
Mehr1 - FortProg ist: [ ] objekt-orientiert; [ ] funktional; [ ] logisch; [ ] manchmal nicht auszuhalten
1 - FortProg ist: [ ] objekt-orientiert; [ ] funktional; [ ] logisch; [ ] manchmal nicht auszuhalten Java-1. a), e) Java-2. --- gestrichen --- Java-3. keine Antwort ist richtig Java-4. a) Java-5. a), b)
MehrPaarweise Unabhängigkeit vs. Unabhängigkeit
Paarweise Unabhängigkeit vs. Unabhängigkeit Beispiel: Wir betrachten das Szenario von zuvor. Wissen bereits, dass A 1, A 2 und A 1, B unabhängig sind. Analog folgt, dass A 2 und B unabhängige Ereignisse
MehrEine zu Grunde liegende Typdefinition beschreibt eine Struktur, die alle erlaubten Instanzen dieses Typs gemeinsam haben.
Der binäre Baum Tree Die geläufigste Datenstuktur ist der binäre Baum Tree. Dieses Beispielskript zeigt im direkten Vergleich zu anderen Sprachen den Umgang mit formalen Typparametern in CHELSEA. Wir steigen
MehrTheoretische Informatik SS 03 Übung 3
Theoretische Informatik SS 03 Übung 3 Aufgabe 1 a) Sind die folgenden Funktionen f : partiell oder total: f(x, y) = x + y f(x, y) = x y f(x, y) = x y f(x, y) = x DIV y? Hierbei ist x DIV y = x y der ganzzahlige
Mehr[10] Software Transactional Memory in Haskell, Tortenwurf und Aufgabenblatt 7
Haskell Live [10 Software Transactional Memory in Haskell, Tortenwurf und Aufgabenblatt 7 Bong Min Kim e0327177@student.tuwien.ac.at Christoph Spörk christoph.spoerk@inode.at Bernhard Urban lewurm@gmail.com
MehrBeispiele: (Funktionen auf Listen) (3) Bemerkungen: Die Datenstrukturen der Paare (2) Die Datenstrukturen der Paare
Beispiele: (Funktionen auf Listen) (3) Bemerkungen: 5. Zusammenhängen der Elemente einer Liste von Listen: concat :: [[a]] -> [a] concat xl = if null xl then [] else append (head xl) ( concat (tail xl))
MehrProgrammieren in Haskell
Programmieren in Haskell Programmieren mit Listen Programmieren in Haskell 1 Was wir heute machen Eigener Listen-Datentyp Eine Sortierfunktion Nützliche Listenfunktionen Programmieren in Haskell 2 Ein
MehrInduktion und Rekursion
Mathematische Beweistechniken Vorkurs Informatik SoSe13 10. April 013 Mathematische Beweistechniken Ziel Mathematische Beweistechniken Ziel beweise, dass eine Aussage A(n) für alle n N gilt. Beispiel Für
MehrKapitel 3: Programmierung mit Kombinatoren
Funktionale Programmierung (WS2005/2006) 3/1 Kapitel 3: Programmierung mit Kombinatoren Lernziele dieses Kapitels 1. Denken in unktionalen Komponenten, Vermeidung von Kontrolllussdenken (Rekursion) Details
MehrChapter 1 : þÿ b e t a t h o m e T i c k e t - S t a t u s c h a p t e r
Chapter 1 : þÿ b e t a t h o m e T i c k e t - S t a t u s c h a p t e r þÿ y o u r f r e s h w a t e r p r a w n s a t y o u r f a r m g a t e. 1 4 2. 9. 4. R e f e r e n c e t o t h e c u l t u r e o
MehrFunktionale Programmierung. ALP I Lambda-Kalkül. Teil IVb WS 2012/2013. Prof. Dr. Margarita Esponda. Prof. Dr. Margarita Esponda
ALP I Lambda-Kalkül Teil IVb WS 2012/2013 λ-kalkül-parser Hilfsfunktionen: Die break-funktion ist eine Funktion höherer Ordnung, die eine Liste beim ersten Vorkommen einer Bedingung in zwei Listen spaltet.
Mehr1. Aufgabe [2 Punkte] Seien X, Y zwei nicht-leere Mengen und A(x, y) eine Aussageform. Betrachten Sie die folgenden Aussagen:
Klausur zur Analysis I svorschläge Universität Regensburg, Wintersemester 013/14 Prof. Dr. Bernd Ammann / Dr. Mihaela Pilca 0.0.014, Bearbeitungszeit: 3 Stunden 1. Aufgabe [ Punte] Seien X, Y zwei nicht-leere
MehrTag 8. Beispiel: Tabellen formatieren
Tag 8 Beispiel: Tabellen formatieren Am heutigen Tag geht es nicht in erster Linie darum, neue Konzepte einzuführen, sondern wir wollen sehen, was wir mit dem bereits Erlernten schon erreichen können.
MehrHandout zu Beweistechniken
Handout zu Beweistechniken erstellt vom Lernzentrum Informatik auf Basis von [Kre13],[Bün] Inhaltsverzeichnis 1 Was ist ein Beweis? 2 2 Was ist Vorraussetzung, was ist Behauptung? 2 3 Beweisarten 3 3.1
MehrProgrammieren in Haskell
Programmieren in Haskell Programmieren mit Listen Programmieren in Haskell 1 Was wir heute machen Eigener Listen-Datentyp Eine Sortierfunktion Nützliche Listenfunktionen Programmieren in Haskell 2 Ein
MehrDonnerstag, 11. Dezember 03 Satz 2.2 Der Name Unterraum ist gerechtfertigt, denn jeder Unterraum U von V ist bzgl.
Unterräume und Lineare Hülle 59 3. Unterräume und Lineare Hülle Definition.1 Eine Teilmenge U eines R-Vektorraums V heißt von V, wenn gilt: Unterraum (U 1) 0 U. (U ) U + U U, d.h. x, y U x + y U. (U )
MehrPraktische Informatik 3: Einführung in die Funktionale Programmierung Vorlesung vom 10.11.2010: Rekursive Datentypen
Rev. 1152 1 [23] Praktische Informatik 3: Einführung in die Funktionale Programmierung Vorlesung vom 10.11.2010: Rekursive Datentypen Christoph Lüth & Dennis Walter Universität Bremen Wintersemester 2010/11
MehrStetige Funktionen, Binomischer Lehrsatz
Vorlesung 13 Stetige Funktionen, Binomischer Lehrsatz 13.1 Funktionenfolgen Wir verbinden nun den Grenzwertbegriff mit dem Funktionsbegriff. Es seien (a n ) n N eine reelle Folge und f : R R eine Funktion.
Mehr5 Logische Programmierung
5 Logische Programmierung Logik wird als Programmiersprache benutzt Der logische Ansatz zu Programmierung ist (sowie der funktionale) deklarativ; Programme können mit Hilfe zweier abstrakten, maschinen-unabhängigen
MehrFunktionale Programmierung mit C++
Funktionale Programmierung mit C++ Überblick Programmierung in funktionaler Art Warum funktionale Programmierung? Was ist funktionale Programmierung? Charakteristiken funktionaler Programmierung Was fehlt
MehrDezimaldarstellung ganzer Zahlen (Division mit Rest) 1 Division mit Rest in der Hochschule
Berufsfeldbezogenes Fachseminar - Zahlentheorie Lisa Laudan Prof. Dr. Jürg Kramer Wintersemester 2014/2015 Dezimaldarstellung ganzer Zahlen (Division mit Rest) 1 Division mit Rest in der Hochschule 1.1
MehrProgrammtransformationen und Induktion in funktionalen Programmen
Programmtransformationen und Induktion in funktionalen Programmen Prof. Dr. Manfred Schmidt-Schauß Künstliche Intelligenz und Softwaretechnologie 13. Januar 2009 Einschub: Monadisches IO verzögern Implementierung
MehrFerienkurs Analysis 1: Übungsblatt 1
Ferienkurs Analysis : Übungsblatt Marta Krawczyk, Andreas Schindewolf, Simon Filser 5.3.00 Aufgaben zur vollständigen Induktion. Verallgemeinerte geometrische Summenformel. Zeigen Sie mittels vollständiger
MehrGrundlagen Theoretischer Informatik I SoSe 2011 in Trier. Henning Fernau Universität Trier fernau@uni-trier.de
Grundlagen Theoretischer Informatik I SoSe 2011 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1 Grundlagen Theoretischer Informatik I Gesamtübersicht Organisatorisches; Einführung Logik
MehrProf. Dr. Heinrich Müller; Dr. Frank Weichert 7. September 2015
Technische Universität Dortmund Informatik VII (Graphische Systeme) Prof. Dr. Heinrich Müller; Dr. Frank Weichert 7. September 2015 Übungsaufgaben zum Vorkurs Informatik Wintersemester 2015/2016 Teil I
MehrEinführung in die Funktionale Programmierung mit Haskell
Einführung in die Funktionale Programmierung mit Haskell Rekursion LFE Theoretische Informatik, Institut für Informatik, Ludwig-Maximilians Universität, München 25. April 2013 Planung Achtung: Nächste
MehrChapter 1 : þÿ H ö c h s t e i n s a t z b e t a t h o m e c h a p t e r
Chapter 1 : þÿ H ö c h s t e i n s a t z b e t a t h o m e c h a p t e r þÿ w e r d e n a l s Z a h l u n g s m ö g l i c h k e i t e n v o n B e t - a t - H o m e e b e n f a l l s u n t e r s t ü t z
MehrRepräsentierbarkeit arithmetischer Prädikate
Repräsentierbarkeit arithmetischer Prädikate Michael Schatz 9. Mai 2012 Dieses Handout richtet sich nach Kapitel 6.3 in [R], wobei es 2 wesentliche Änderungen zu beachten gilt: (a) Rautenberg arbeitet
MehrThemen: Kubische Gleichungen, Ungleichungen, Induktion
Lo sungen zu U bungsblatt Mathematik fu r Ingenieure Maschinenbauer und Sicherheitstechniker), 1. Semester, bei Prof. Dr. G. Herbort im WiSe1/14 Dipl.-Math. T. Pawlaschyk, 05.11.1 Themen: Kubische Gleichungen,
MehrLernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können.
6. Bäume Lernziele 6. Bäume Lernziele: Definition und Eigenschaften binärer Bäume kennen, Traversierungsalgorithmen für binäre Bäume implementieren können, die Bedeutung von Suchbäumen für die effiziente
MehrDas characteristische Polynom und der Satz von Cayley-Hamilton
Das characteristische Polynom und der Satz von Cayley-Hamilton Lineare Algebra I Kapitel 8 11. Juni 2013 Logistik Dozent: Olga Holtz, MA 417, Sprechstunden Freitag 14-16 Webseite: www.math.tu-berlin.de/
MehrEinführung in die Algebra
Prof. Dr. H. Brenner Osnabrück SS 2009 Einführung in die Algebra Vorlesung 13 Einheiten Definition 13.1. Ein Element u in einem Ring R heißt Einheit, wenn es ein Element v R gibt mit uv = vu = 1. DasElementv
MehrFormale Methoden 1. Gerhard Jäger 23. Januar Uni Bielefeld, WS 2007/2008 1/18
1/18 Formale Methoden 1 Gerhard Jäger Gerhard.Jaeger@uni-bielefeld.de Uni Bielefeld, WS 2007/2008 23. Januar 2008 2/18 Das Pumping-Lemma Sein L eine unendliche reguläre Sprache über ein endliches Alphabet
Mehrp 2istirrational Satz 1.15 Beweis. Es gibt keine rationale Zahl x, diediegleichungx 2 =2erfüllt.
p 2istirrational Satz 1.15 Es gibt keine rationale Zahl x, diediegleichungx 2 =2erfüllt. Beweis. Annahme: Es existiert x 2 Q mit x 2 = 2. Wegen x 2 Q folgt x = p q und p und q sind teilerfremde ganze Zahlen.
MehrTypdeklarationen. Es gibt in Haskell bereits primitive Typen:
Typdeklarationen Es gibt in bereits primitive Typen: Integer: ganze Zahlen, z.b. 1289736781236 Int: ganze Zahlen mit Computerarithmetik, z.b. 123 Double: Fließkommazahlen, z.b. 3.14159 String: Zeichenketten,
MehrKapitel 5 KONVERGENZ
Kapitel 5 KONVERGENZ Fassung vom 21. April 2002 Claude Portenier ANALYSIS 75 5.1 Metrische Räume 5.1 Metrische Räume DEFINITION 1 Sei X eine Menge. Eine Abbildung d : X X! R + heißt Metrik oder Distanz
MehrBehauptung: Es gibt unendlich viele Primzahlen.
Behauptung: Es gibt unendlich viele Primzahlen. 1 Der Beweis von Euklid Annahme: Es gibt endlich viele Primzahlen {p 1,..., p r }. Wir bilden die Zahl n = p 1... p r + 1. Nun gibt es zwei Möglichkeiten.
MehrHilbert-Kalkül (Einführung)
Hilbert-Kalkül (Einführung) Es gibt viele verschiedene Kalküle, mit denen sich durch syntaktische Umformungen zeigen läßt, ob eine Formel gültig bzw. unerfüllbar ist. Zwei Gruppen von Kalkülen: Kalküle
MehrTU8 Beweismethoden. Daniela Andrade
TU8 Beweismethoden Daniela Andrade daniela.andrade@tum.de 12.12.2016 1 / 21 Kleine Anmerkung Meine Folien basieren auf den DS Trainer von Carlos Camino, den ihr auf www.carlos-camino.de/ds findet ;) 2
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Große Übung #2 Phillip Keldenich, Arne Schmidt 10.11.2016 Organisatorisches Fragen? Checkliste: Anmeldung kleine Übungen Anmeldung Mailingliste Dies ersetzt nicht die Prüfungsanmeldung!
MehrÜbersicht. Schleifen. Schleifeninvarianten. Referenztypen, Wrapperklassen und API. 9. November 2009 CoMa I WS 08/09 1/15
Übersicht Schleifen Schleifeninvarianten Referenztypen, Wrapperklassen und API CoMa I WS 08/09 1/15 CoMa I Programmierziele Linux bedienen Code umschreiben strukturierte Datentypen Anweisungen und Kontrollstrukturen
MehrInformatik-Seminar Thema 6: Bäume
Informatik-Seminar 2003 - Thema 6: Bäume Robin Brandt 14. November 2003 1 Robin Brandt Informatik-Seminar 2003 - Thema 6: Bäume Übersicht Definition Eigenschaften Operationen Idee Beispiel Datendefinition
MehrGrundlagen der Mathematik
Grundlagen der Mathematik Übungsaufgaben zu Kapitel 1 Einführung 1.1.1 Für reelle Zahlen a und b gilt (a+b) (a-b) = a 2 -b 2. Was ist die Voraussetzung? Wie lautet die Behauptung? Beweisen Sie die Behauptung.
MehrTechnische Universität München
Stand der Vorlesung Kapitel 2: Auffrischung einiger mathematischer Grundlagen Mengen, Potenzmenge, Kreuzprodukt (Paare, Tripel, n-tupel) Relation: Teilmenge MxN Eigenschaften: reflexiv, symmetrisch, transitiv,
MehrAuswahl von Klauseln und Atomen in Prolog
5.6 Prolog... ist die bekannteste Implementierung einer LP-Sprache; wurde Anfang der 1970er von Alain Colmerauer (Marseille) und Robert Kowalski (Edinburgh) entwickelt. konkretisiert den vorgestellten
MehrEinstieg in die Informatik mit Java
1 / 15 Einstieg in die Informatik mit Java Collections Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 15 1 Überblick Collections 2 Hierarchie von Collections 3 Verwendung
MehrResolutionsalgorithmus
112 Resolutionskalkül Mit dem Begriff Kalkül bezeichnet man eine Menge von syntaktischen Umformungsregeln, mit denen man semantische Eigenschaften der Eingabeformel herleiten kann. Für den Resolutionskalkül:
MehrElemente der Algebra und Zahlentheorie Musterlösung, Serie 3, Wintersemester vom 15. Januar 2006
Prof. E.-W. Zink Institut für Mathematik Humboldt-Universität zu Berlin Elemente der Algebra und Zahlentheorie Musterlösung, Serie 3, Wintersemester 2005-06 vom 15. Januar 2006 2te, korrigierte und erweiterte
MehrKapitel: Die Chomsky Hierarchie. Die Chomsky Hierarchie 1 / 14
Kapitel: Die Chomsky Hierarchie Die Chomsky Hierarchie 1 / 14 Allgemeine Grammatiken Definition Eine Grammatik G = (Σ, V, S, P) besteht aus: einem endlichen Alphabet Σ, einer endlichen Menge V von Variablen
MehrVier-Farben-Vermutung (1)
Vier-Farben-Vermutung (1) Landkarten möchte man so färben, dass keine benachbarten Länder die gleiche Farbe erhalten. Wie viele Farben braucht man zur Färbung einer Landkarte? Vier-Farben-Vermutung: Jede
MehrFragen zum Nachdenken: Wie könnte man das Fehlen eines Attribut-Wertes interpretieren?
Attribut-Werte-Paare Eine Eigenschaft kann beschrieben werden durch ein Paar [a,w]. Dabei bezeichnet a das Attribut und w den konkreten Wert aus dem Wertebereich W a des Attributs. Die Eigenschaften eines
MehrProgrammieren in Haskell
Programmieren in Haskell Felder (Arrays) Programmieren in Haskell 1 Was wir heute machen Motivationsbeispiel Die Typklasse Ix Felder in Haskell Funktionstabellierung Binäre Suche Pascalsches Dreieck Hashing
Mehr