Hallo Welt für Fortgeschrittene
|
|
- Karoline Fertig
- vor 6 Jahren
- Abrufe
Transkript
1 Hallo Welt für Fortgeschrittene Zahlentheorie, Arithmetik und Algebra II Benjamin Fischer Informatik 2 Programmiersysteme Martensstraße Erlangen
2 Gliederung Lineare Rekursion BigInteger Chinesischer Restsatz Diophantische Gleichungen Hallo Welt für Fortgeschritten ZAA2 Benjamin Fischer Folie 2
3 Lineare Rekursion - Fibonacci Wir betrachten die Fibonacci-Folge mit der Differenzengleichung: Wir wissen bereits Naiver Ansatz : rekursive Berechnung stößt schnell an seine Grenzen... Dynamische Programmierung hoher Speicheraufwand Formel von Moivre/Binet ungenau für große n Hallo Welt für Fortgeschritten ZAA2 Benjamin Fischer Folie 3
4 Lineare Rekursion Für viele Folgen exisitiert eine lineare Differenzengleichung der Form: mit k Konstanten c i und k Startwerten a i Diese treten bei fast allen linear rekursiven Problemen auf Wie berechnet man diese effizient? Hallo Welt für Fortgeschritten ZAA2 Benjamin Fischer Folie 4
5 Lineare Rekursion - Fibonacci Berechnung mit der Fibonacci Q-Matrix: Satz von Cassini Fibonacci rekursiv Herleitung an der Tafel... Hallo Welt für Fortgeschritten ZAA2 Benjamin Fischer Folie 5
6 Herleitung zusammengefasst ;) Schreibe (2) als Ergibt mit den Startwerten Also Hallo Welt für Fortgeschritten ZAA2 Benjamin Fischer Folie 6
7 Lineare Rekursion - Fibonacci Was bringt uns das? Matrix-Multiplikation ist assoziativ Potenzgesetze ausnutzen Gesamtlaufzeit für n x n Matrix Hallo Welt für Fortgeschritten ZAA2 Benjamin Fischer Folie 7
8 Fibonacci Vergleich Laufzeiten Rekursiv Dynamische Programmierung Q-Matrix Hallo Welt für Fortgeschritten ZAA2 Benjamin Fischer Folie 8
9 Lineare Rekursion Fibonacci (Beispiel) Berechnung von Fib(42) Hallo Welt für Fortgeschritten ZAA2 Benjamin Fischer Folie 9
10 Lineare Rekursion Weiteres Beispiel Gegegeben sei die lineare Differenzengleichung Mit den Startwerten In Matrixform Hallo Welt für Fortgeschritten ZAA2 Benjamin Fischer Folie 10
11 Lineare Rekursion Weiteres Beispiel (2) Lösung Beispiel für n = 4 Hallo Welt für Fortgeschritten ZAA2 Benjamin Fischer Folie 11
12 BigInteger Motivation Primitive Datentypen (int/float, long/double, usw.) für viele numerische Berechnungen nicht ausreichend Maximal int128 mit 16 Byte, Wertebereich: -1,7*10 38 bis 1,7*10 38 (signed), 0 bis 3,4 *10 38 (unsigned) Zum Beispiel in der Kryptografie, Finanzmathematik, numerischen Algebra,... Übersicht für Programmiersprachen (Beispiel in Java): C/C++ : gmp-library Haskell/Python : implizit, aufgrund eines anderen Paradigma Java : BigInteger Hallo Welt für Fortgeschritten ZAA2 Benjamin Fischer Folie 12
13 BigInteger Die Klasse java.math.biginteger Ermöglicht das Rechnen mit Ganzzahlen beliebiger Größe Bietet weitere Funktionalitäten wie Bestimmung des ggt Modulare Arithmetik Erzeugung von Pseudo-Primzahlen Analog für Gleitkommazahlen mit java.math.bigdecimal Hallo Welt für Fortgeschritten ZAA2 Benjamin Fischer Folie 13
14 BigInteger Übersicht einiger Methoden Konstruktoren // erzeugt BigInteger-Objekt mit Ziffern-String BigInteger ( String val ) ; // erzeugt BigInteger-Objekt mit Ziffern-String zur Basis radix BigInteger ( String val, int radix ) ; // erzeugt BigInteger-Objekt mit Byte-Array im Zweierkomplement BigInteger ( byte[] val ) ; // BigInteger konstant 1 final BigInteger ONE ; // BigInteger konstant 10 final BigInteger TEN ; Hallo Welt für Fortgeschritten ZAA2 Benjamin Fischer Folie 14
15 BigInteger Arithmetische Operatoren // Addition BigInteger add ( BigInteger val ) ; // Multiplikation BigInteger multiply ( BigInteger val ) ; // Subtraktion BigInteger subtract ( BigInteger val ) ; // usw... // Bestimmung des ggt BigInteger gcd ( BigInteger val ) ; // Primzahl-Test boolean isprobableprime ( int certainty ) ; Hallo Welt für Fortgeschritten ZAA2 Benjamin Fischer Folie 15
16 BigInteger mit Fibonacci-Q-Matrix import java.math.biginteger ; public class BigInt { public static BigInteger[][] Q = new BigInteger[2][2]; public static BigInteger[][] res = new BigInteger[2][2]; public static void main ( String[] args ) { initq(q); inite(res); ComputeFibQ(10000); } public static void computefibq ( long n ) { pow(q,n,res); System.out.println( "Fib(" + n + ") = " + res[0][1].tostring()); } Hallo Welt für Fortgeschritten ZAA2 Benjamin Fischer Folie 16
17 BigInteger mit Fibonacci-Q-Matrix (2) public static void initq ( BigInteger[][] m ) { m[0][0] = m[0][1] = m[1][0] = BigInteger.ONE; m[1][1] = BigInteger.ZERO; } public static void inite ( BigInteger[][] m ) { m[0][0] = m[1][1] = BigInteger.ONE; m[0][1] = m[1][0] = BigInteger.ZERO; } public static void copy ( BigInteger[][] m1, BigInteger[][] m2 ) { m1[0][0] = m2[0][0]; m1[0][1] = m2[0][1]; m1[1][0] = m2[1][0]; m1[1][1] = m2[1][1]; } Hallo Welt für Fortgeschritten ZAA2 Benjamin Fischer Folie 17
18 BigInteger mit Fibonacci-Q-Matrix (3) public static void multiply ( BigInteger[][] m1, BigInteger[][] m2 ) { BigInteger[][] cur = new BigInteger[2][2]; cur[0][0] = (m1[0][0].multiply(m2[0][0])).add(m1[0][1].multiply(m2[1][0])) ; cur[0][1] = (m1[0][0].multiply(m2[0][1])).add(m1[0][1].multiply(m2[1][1])) ; cur[1][0] = (m1[1][0].multiply(m2[0][0])).add(m1[1][1].multiply(m2[1][0])) ; cur[1][1] = (m1[1][0].multiply(m2[0][1])).add(m1[1][1].multiply(m2[1][1])) ; copy(m1,cur); } public static void pow ( BigInteger[][] Q, long n, BigInteger[][] cur ) { while (n > 0) { if (n % 2 == 0) { multiply (Q,Q) ; n /= 2 ; } else { multiply(cur,q) ; n-- ; } } } Hallo Welt für Fortgeschritten ZAA2 Benjamin Fischer Folie 18
19 Chinesischer Restsatz Historisches erste Version des Satzes von Sun Zi (chinesischer Mathematiker) ca. im 3. Jhdt v.chr. In dieser Form wurde der Satz von Ch in Chiu-Shao im Jahre 1247 bewiesen Hallo Welt für Fortgeschritten ZAA2 Benjamin Fischer Folie 19
20 Chinesischer Restsatz Problem Dies ist ein System linearer Kongruenzen (sogenannte simultane Kongruenz) Hallo Welt für Fortgeschritten ZAA2 Benjamin Fischer Folie 20
21 Chinesischer Restsatz In diesem Sinne sind 4 Fragen zu beantworten Wann exisitiert eine Lösung? Ist diese Lösung eindeutig? Wie berechnet man diese? Wo findet der chinesische Restsatz Anwendung? Bemerkung: Zunächst Analyse von Systemen bestehend aus 2 Kongruenzen Anschließend Rückführung auf den allgemeinen Fall (formal per Induktion über die Länge des Systems) Hallo Welt für Fortgeschritten ZAA2 Benjamin Fischer Folie 21
22 Chinesischer Restsatz Hallo Welt für Fortgeschritten ZAA2 Benjamin Fischer Folie 22
23 Beweis Eindeutigkeit Annahme : Daraus folgt : Das impliziert : Also : Hallo Welt für Fortgeschritten ZAA2 Benjamin Fischer Folie 23
24 Chinesischer Restsatz Hallo Welt für Fortgeschritten ZAA2 Benjamin Fischer Folie 24
25 Problem Keine Lösung (I) Lösung (II) Hallo Welt für Fortgeschritten ZAA2 Benjamin Fischer Folie 25
26 Chinesischer Restsatz (Zusammenfassung) Vorteil: m 1 und m 2 müssen nicht teilerfremd sein! Hallo Welt für Fortgeschritten ZAA2 Benjamin Fischer Folie 26
27 Chinesischer Restsatz Lösung 1. Erhalte simultange Kongruenz als Eingabe 2. solange mehr als eine Gleichung vorhanden ist 2.1 Fasse zwei Gleichungen mit dem Verfahren von vorheriger Folie zusammen 2.2 Entferne die zwei Ausgangsgleichungen und füge Ergebnis hinzu 3. verbleibende Gleichung ist Lösung Hallo Welt für Fortgeschritten ZAA2 Benjamin Fischer Folie 27
28 Chinesischer Restsatz Beispiel 1. Schritt: (I) und (II) Hallo Welt für Fortgeschritten ZAA2 Benjamin Fischer Folie 28
29 Chinesischer Restsatz 2. Schritt: (I') und (III) Hallo Welt für Fortgeschritten ZAA2 Benjamin Fischer Folie 29
30 Chinesischer Restsatz Lösung gefunden! Hallo Welt für Fortgeschritten ZAA2 Benjamin Fischer Folie 30
31 Diophantische Gleichungen Allgemeine diophantische Gleichung mit f Polynomfunktion und ganzzahligen Koeffizienten Beispiele Hallo Welt für Fortgeschritten ZAA2 Benjamin Fischer Folie 31
32 Diophantische Gleichungen Problem Lösbarkeit einer allgemeinen diophantischen Gleichung unentscheidbar Hilberts zehntes Problem, Beweis Matijassewitsch, 1970 Betrachtung von linearen diophantischen Gleichungen Algorithmen zur Bestimmung einer Lösung Anwendung beispielsweiße in der Produktverteilung Hallo Welt für Fortgeschritten ZAA2 Benjamin Fischer Folie 32
33 Lineare Diophantische Gleichungen In diesem Sinne stellen sich wieder die Frage Wann exisitiert eine Lösung? Ist diese Lösung eindeutig? Wie berechnet man diese Lösung? Ausgehend von 2 Unbekannten, Ruckführung auf allgemeinen Fall Von Interesse sind nur ganzzahlige Lösungen Hallo Welt für Fortgeschritten ZAA2 Benjamin Fischer Folie 33
34 Lineare Diophantische Gleichungen Allgemeine Form Lösbarkeit Bemerkung : für c = 0 exisitert offensichtlich x 1 = x 2 = 0 als Lösung Hallo Welt für Fortgeschritten ZAA2 Benjamin Fischer Folie 34
35 Lineare Diophantische Gleichungen Bestimmung einer Lösung Hallo Welt für Fortgeschritten ZAA2 Benjamin Fischer Folie 35
36 Lineare Diophantische Gleichungen Bestimmung aller Lösungen Hallo Welt für Fortgeschritten ZAA2 Benjamin Fischer Folie 36
37 Lineare Diophantische Gleichungen Hallo Welt für Fortgeschritten ZAA2 Benjamin Fischer Folie 37
38 Lineare Diophantische Gleichungen Beweis Hallo Welt für Fortgeschritten ZAA2 Benjamin Fischer Folie 38
39 Lineare Diophantische Gleichungen Allgemeiner Fall Hallo Welt für Fortgeschritten ZAA2 Benjamin Fischer Folie 39
40 Lineare Diophantische Gleichungen Algorithmus 1. Reduziere Ausgangsgleichung auf zwei Unbekannte 2. Löse diese mit bekanntem Verfahren 3. Löse in k-2 Schritten die substituierten Gleichungen, pro Schritt wird eine Lösung von x i erhalten 4. Lösung für alle x i gefunden Hallo Welt für Fortgeschritten ZAA2 Benjamin Fischer Folie 40
41 Lineare Diophantische Gleichungen - Beispiel Ausgangsgleichung Exisitieren Lösungen? Reduktion auf 2 Unbekannte 1. Schritt 2. Schritt Hallo Welt für Fortgeschritten ZAA2 Benjamin Fischer Folie 41
42 Lösungsverfahren 1. Schritt Partikuläre Lösungen für x 1 und y 2 Allgemeine Lösungen für x 1 und y 2 Hallo Welt für Fortgeschritten ZAA2 Benjamin Fischer Folie 42
43 Lösungsverfahren 2. Schritt Partikuläre Lösungen für x 2 und y 1 Allgemeine Lösungen für x 2 und y 1 Hallo Welt für Fortgeschritten ZAA2 Benjamin Fischer Folie 43
44 Lösungsverfahren 3. Schritt Partikuläre Lösungen für x 3 und x 4 Allgemeine Lösungen für x 3 und x 4 Hallo Welt für Fortgeschritten ZAA2 Benjamin Fischer Folie 44
45 Lösungsverfahren Lösung Hallo Welt für Fortgeschritten ZAA2 Benjamin Fischer Folie 45
46 Vielen Dank für die Aufmerksamkeit! Noch Fragen? Hallo Welt für Fortgeschritten ZAA2 Benjamin Fischer Folie 46
47 Quellen Lineare Rekursion BigInteger Chinesischer Restsatz /docs/crt.pdf Diophantische Gleichungen Hallo-Welt-Folien Hallo Welt für Fortgeschritten ZAA2 Benjamin Fischer Folie 47
Hallo Welt für Fortgeschrittene
Hallo Welt für Fortgeschrittene Zahlentheorie, Arithmetik und Algebra II Florin Cristian Ghesu Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Übersicht Rechnen mit großen Zahlen BigInteger
MehrII.3.1 Rekursive Algorithmen - 1 -
1. Grundelemente der Programmierung 2. Objekte, Klassen und Methoden 3. Rekursion und dynamische Datenstrukturen 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.3.1 Rekursive Algorithmen -
MehrEin erstes Java-Programm
Ein erstes Java-Programm public class Rechnung { public static void main (String [] arguments) { int x, y; x = 10; y = -1 + 23 * 33 + 3 * 7 * (5 + 6); System.out.print ("Das Resultat ist "); System.out.println
MehrGrundzüge der Wirtschaftsinformatik WS 2002/03. Wiederholung Java. Programmierzyklus. Heiko Rossnagel Problem
Grundzüge der Wirtschaftsinformatik WS 2002/03 Wiederholung Java Heiko Rossnagel www.m-lehrstuhl.de accelerate.com Grundzüge der Wirtschaftsinformatik WS 2002/03 1 Programmierzyklus Problem Formulierung
MehrPrimitive Datentypen
Primitive Datentypen 2 Arten von Datentypen: primitive Datentypen (heute) Objekte (später) Java ist streng typisiert, d.h. für jede Variable muß angegeben werden was für eine Art von Wert sie aufnimmt.
Mehr3. Diskrete Mathematik
Diophantos von Alexandria um 250 Georg Cantor 1845-1918 Pythagoras um 570 v. Chr Pierre de Fermat 1607/8-1665 Seite 1 Inhalt der Vorlesung Teil 3: Diskrete Mathematik 3.1 Zahlentheorie: Abzählbarkeit,
MehrKomplexität von Algorithmen
Komplexität von Algorithmen Prof. Dr. Christian Böhm WS 07/08 in Zusammenarbeit mit Gefei Zhang http://www.dbs.informatik.uni-muenchen.de/lehre/nfinfosw Ressourcenbedarf - Größenordnungen Prozesse verbrauchen
MehrJava Einführung VARIABLEN und DATENTYPEN Kapitel 2
Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Inhalt dieser Einheit Variablen (Sinn und Aufgabe) Bezeichner Datentypen, Deklaration und Operationen Typenumwandlung (implizit/explizit) 2 Variablen
MehrEinstieg in die Informatik mit Java
Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form
Mehr11. Rekursion, Komplexität von Algorithmen
11. Rekursion, Komplexität von Algorithmen Teil 2 Java-Beispiele: Power1.java Hanoi.java K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 23. Nov. 2015 Anwendung der Rekursion Rekursiv
MehrZahlentheorie, Arithmetik und Algebra 1
Zahlentheorie, Arithmetik und Algebra 1 Monika Huber 24.6.2015 Monika Huber Zahlentheorie, Arithmetik und Algebra 1 24.6.2015 1 / 52 Übersicht Modulare Arithmetik Größter gemeinsamer Teiler Primzahlen
MehrEinführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015
Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 4, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)
MehrRepetitorium Informatik (Java)
Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen
MehrProgrammierung WS12/13 Lösung - Übung 1 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder
Prof. aa Dr. J. Giesl Programmierung WS12/13 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder Tutoraufgabe 1 (Syntax und Semantik): 1. Was ist Syntax? Was ist Semantik? Erläutern Sie den Unterschied. 2.
Mehr1 Zahlentheorie. 1.1 Kongruenzen
3 Zahlentheorie. Kongruenzen Der letzte Abschnitt zeigte, daß es sinnvoll ist, mit großen Zahlen möglichst einfach rechnen zu können. Oft kommt es nicht darauf, an eine Zahl im Detail zu kennen, sondern
MehrJAVA-Datentypen und deren Wertebereich
Folge 8 Variablen & Operatoren JAVA 8.1 Variablen JAVA nutzt zum Ablegen (Zwischenspeichern) von Daten Variablen. (Dies funktioniert wie beim Taschenrechner. Dort können Sie mit der Taste eine Zahl zwischenspeichern).
MehrTutoraufgabe 1 (Zweierkomplement): Lösung: Programmierung WS16/17 Lösung - Übung 2
Prof. aa Dr. J. Giesl Programmierung WS16/17 F. Frohn, J. Hensel, D. Korzeniewski Tutoraufgabe 1 (Zweierkomplement): a) Sei x eine ganze Zahl. Wie unterscheiden sich die Zweierkomplement-Darstellungen
MehrEinführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel.
Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 7, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)
MehrEinstieg in die Informatik mit Java
1 / 32 Einstieg in die Informatik mit Java Effizienz Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 32 1 Überblick: was ist Effizienz? 2 Landau-Symbole 3 Eier im Korb 4
MehrDr. Monika Meiler. Inhalt
Inhalt 4 Einführung in die Programmiersprache Java (Teil II)... 4-2 4.4 Strukturierte Programmierung... 4-2 4.4.1 Strukturierung im Kleinen... 4-2 4.4.2 Addierer (do-schleife)... 4-3 4.4.3 Ein- Mal- Eins
MehrZahlentheorie, Arithmetik und Algebra I
Zahlentheorie, Arithmetik und Algebra I Viktoria Ronge 04.06.2014 Viktoria Ronge Zahlentheorie, Arithmetik und Algebra I 04.06.2014 1 / 63 Übersicht 1 Modulare Arithmetik 2 Primzahlen 3 Verschiedene Teiler
MehrWIEDERHOLUNG (BIS ZU BLATT 7)
Universität Bielefeld SS 2016 WIEDERHOLUNG (BIS ZU BLATT 7) JULIA SAUTER Wir wiederholen, welche Aufgabentypen bis zu diesem Zeitpunkt behandelt worden sind. Auf der nächsten Seite können Sie sich selber
MehrGanzzahlige Division mit Rest
Modulare Arithmetik Slide 1 Ganzzahlige Division mit Rest Für a,b Æ mit a b gibt es stets eine Zerlegung von a der Form a = q b+r mit 0 r b 1. Hierbei gilt q = a b (salopp formuliert: b passt q-mal in
MehrEinführung in die Java- Programmierung
Einführung in die Java- Programmierung Dr. Volker Riediger Der hat die früher handschriftlichen Folien lesbar gemacht. Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Heutige Themen Hello World!
MehrProgrammierkurs Java
Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen
MehrInformatik B von Adrian Neumann
Musterlösung zum 7. Aufgabenblatt vom Montag, den 25. Mai 2009 zur Vorlesung Informatik B von Adrian Neumann 1. Java I Schreiben Sie ein Java Programm, das alle positiven ganzen Zahlen 0 < a < b < 1000
MehrHello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3.
Hello World Javakurs 2014, 1. Vorlesung Sebastian Schuck basierend auf der Vorlage von Arne Kappen wiki.freitagsrunde.org 3. März 2014 This work is licensed under the Creative Commons Attribution-ShareAlike
MehrRekursion. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Rekursion Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-12-13/infoeinf WS12/13 Aufgabe 1: Potenzfunktion Schreiben Sie eine Methode, die
MehrEinführung in die Informatik für Hörer aller Fakultäten II. Andreas Podelski Stephan Diehl Uwe Waldmann
Einführung in die Informatik für Hörer aller Fakultäten II Andreas Podelski Stephan Diehl Uwe Waldmann 1 Einführung in die Informatik für Hörer aller Fakultäten II Andreas Podelski Stephan Diehl Uwe Waldmann
MehrDie Programmiersprache C Eine Einführung
Die Programmiersprache C Eine Einführung Christian Gentsch Fakutltät IV Technische Universität Berlin Projektlabor 2. Mai 2014 Inhaltsverzeichnis 1 Einführung Entstehungsgeschichte Verwendung 2 Objektorientiert
MehrAlgorithmen und Programmierung II
Algorithmen und Programmierung II Vererbung Prof. Dr. Margarita Esponda SS 2012 1 Imperative Grundbestandteile Parameterübergabe String-Klasse Array-Klasse Konzepte objektorientierter Programmierung Vererbung
MehrEinstieg in die Informatik mit Java
Vorlesung vom 18.4.07, Vordefinierte Datentypen Übersicht 1 Ganzzahlige Typen 2 Boolscher Typ 3 Gleitkommatypen 4 Referenztypen 5 void Typ 6 Implizite und explizite Typumwandlungen Ganzzahlige Typen Die
MehrHochschule Augsburg, Fakultät für Informatik Name:... Prüfung "Programmieren 1", IN1bac, WS 10/11 Seite 1 von 6
Prüfung "Programmieren 1", IN1bac, WS 10/11 Seite 1 von 6 Datum, Uhrzeit: 24. 01. 2011, 10.30 Uhr Semester: IN1 Note:... Prüfer: Prof. Meixner Dauer: 60 Min. Hilfsmittel: keine Punkte:... Diese Prüfung
MehrRekursive Funktionen
Um Rekursion zu verstehen, muss man vor allem Rekursion verstehen. http://www2.norwalk-city.k12.oh.us/wordpress/precalc/files/2009/05/mona-lisa-jmc.jpg Rekursive Funktionen OOPM, Ralf Lämmel Was ist Rekursion?
MehrInformatik I WS 07/08 Tutorium 24
Info I Tutorium 24 Informatik I WS 07/08 Tutorium 24 20.12.07 Bastian Molkenthin E-Mail: infotut@sunshine2k.de Web: http://infotut.sunshine2k.de Rückblick Semi-Thue-Systeme Ein Semi-Thue-System besteht
MehrProf. H. Herbstreith Fachbereich Informatik. Leistungsnachweis. Informatik 1 WS 2001/2002
Prof. H. Herbstreith 30.01.2002 Fachbereich Informatik Leistungsnachweis Informatik 1 WS 2001/2002 Bearbeitungszeit 120 Minuten. Keine Hilfsmittel erlaubt. Aufgabe 1: 20 Punkte Vervollständigen Sie folgende
MehrSWE1 / Übung 2 (19.10.2011)
SWE1 / Übung 2 (19.1.211) Simulation von Algorithmen Testen, Testplan Beispiel arithmetische Ausdrücke Handsimulation von Algorithmen Man versteht einen Algorithmus (insbesonders einen "Fremden"), wenn
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 )
MehrJAVA - Zufallszahlen
Übungen Informatik I JAVA - http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 1 5. JAVA werden beim Programmieren erstaunlich oft gebraucht: Simulationen Spiele Aufbau von Testszenarien...
MehrJavaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden
Javaprogrammierung mit NetBeans Variablen, Datentypen, Methoden Programmieren 2 Java Bezeichner Bezeichner: Buchstabe _ $ Buchstabe _ $ Ziffer Groß- und Kleinbuchstaben werden strikt unterschieden. Schlüsselwörter
MehrÜbersicht. Vorstellung des OO-Paradigmas
Java, OO und UML Vorstellung des OO-Paradigmas Übersicht Umsetzung des OO-Paradigmas in Java Einführung (seeeeeehr rudimenter) in UML zur graphischen Darstellung von OO Grammatik und Semantik von Java
Mehr12. Rekursion Grundlagen der Programmierung 1 (Java)
12. Rekursion Grundlagen der Programmierung 1 (Java) Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 24. Januar 2006 Einordnung im Kontext der Vorlesung
MehrProgrammieren I. Kapitel 5. Kontrollfluss
Programmieren I Kapitel 5. Kontrollfluss Kapitel 5: Kontrollfluss Ziel: Komplexere Berechnungen im Methodenrumpf Ausdrücke und Anweisungen Fallunterscheidungen (if, switch) Wiederholte Ausführung (for,
MehrWiederholung Wozu Methoden? Methoden Schreiben Methoden Benutzen Rekursion?! Methoden. Javakurs 2012, 3. Vorlesung
Wiederholung Wozu? Schreiben Benutzen Rekursion?! Javakurs 2012, 3. Vorlesung maggyrz@freitagsrunde.org 5. März 2013 Wiederholung Wozu? Schreiben Benutzen Rekursion?! 1 Wiederholung 2 Wozu? 3 Schreiben
MehrJAVA - Methoden - Rekursion
Übungen Informatik I JAVA - Methoden - Rekursion http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 1 Methoden Methoden sind eine Zusammenfassung von Deklarationen und Anweisungen
MehrII.1.1. Erste Schritte - 1 -
! 1. Grundelemente der Programmierung! 2. Objekte, Klassen und Methoden! 3. Rekursion und dynamische Datenstrukturen! 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.1.1. Erste Schritte - 1
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin
MehrEinführung in die Java- Programmierung
Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113
MehrDr. Monika Meiler. Inhalt
Inhalt 5 Referenzdatentypen - Felder... 5-2 5.1 Eindimensionale Felder - Vektoren... 5-3 5.1.1 Vereinbarung... 5-3 5.1.2 Referenzen sind keine Felder... 5-4 5.1.3 Kopieren eindimensionaler Felder... 5-6
MehrTest-Driven Design: Ein einfaches Beispiel
Test-Driven Design: Ein einfaches Beispiel Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer SS 06 2 Ziele Veranschaulichung der Technik des Test-Driven Design am Beispiel eines Programms
MehrDifferenzengleichungen. und Polynome
Lineare Differenzengleichungen und Polynome Franz Pauer Institut für Mathematik, Universität Innsbruck Technikerstr. 13/7, A-600 Innsbruck, Österreich franz.pauer@uibk.ac.at 1 Einleitung Mit linearen Differenzengleichungen
MehrDistributed Computing Group
JAVA TUTORIAL Distributed Computing Group Vernetzte Systeme - SS 06 Übersicht Warum Java? Interoperabilität grosse und gut dokumentierte Library weit verbreitet Syntax sehr nahe an C Erfahrung: Java wird
Mehr6 Speicherorganisation
Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen Speicherbereich für
MehrDas erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.
Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen
MehrProgrammieren in C++ Überladen von Methoden und Operatoren
Programmieren in C++ Überladen von Methoden und Operatoren Inhalt Überladen von Methoden Überladen von Operatoren Implizite und explizite Konvertierungsoperatoren 7-2 Überladen von Methoden Signatur einer
MehrLineare Differenzengleichungen und Polynome. Franz Pauer
Lineare Differenzengleichungen und Polynome Franz Pauer Institut für Mathematik, Universität Innsbruck, Technikerstr. 13/7, A-600 Innsbruck, Österreich. Franz.Pauer@uibk.ac.at Vortrag beim ÖMG-LehrerInnenfortbildungstag
MehrEinführung in die Java- Programmierung
Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Rückblick Datentypen (int, long, double, boolean, String) Variablen und Variablendeklarationen
MehrJAVA - Methoden
Übungen Informatik I JAVA - http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 Folie 1 sind eine Zusammenfassung von Deklarationen und Anweisungen haben einen Namen und können
MehrDr. Monika Meiler. Inhalt
Inhalt 4 Anweisungen... 4-2 4.1 Strukturierte Programmierung... 4-2 4.1.1 Geschichte... 4-2 4.1.2 Strukturierung im Kleinen... 4-2 4.2 Einige Beispielanwendungen... 4-4 4.2.1 Addierer (do-schleife)...
Mehr13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems
13 Java 4 - Entwurfsmuster am Beispiel des Rucksackproblems 13.1 Modellierung des Rucksackproblems 13.2 Lösung mit Greedy-Algorithmus 13.3 Lösung mit Backtracking 13.4 Lösung mit Dynamischer Programmierung
MehrProbeklausur: Programmierung WS04/05
Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,
MehrJava-Vorkurs 2015. Wintersemester 15/16
Java-Vorkurs 2015 Wintersemester 15/16 Herzlich Willkommen! package de.unistuttgart.47.01.javavorkurs; public class WelcomeErstis { public static void main(string[] args){ System.out.println( Herzlich
Mehr1.2 Eigenschaften der ganzen Zahlen
Lineare Algebra I WS 2015/16 c Rudolf Scharlau 13 1.2 Eigenschaften der ganzen Zahlen Dieser Abschnitt handelt von den gewöhlichen ganzen Zahlen Z und ihren Verknüpfungen plus und mal. Man kann die natürlichen
MehrAlgebra und Diskrete Mathematik, PS3. Sommersemester Prüfungsfragen
Algebra und Diskrete Mathematik, PS3 Sommersemester 2016 Prüfungsfragen Erläutern Sie die Sätze über die Division mit Rest für ganze Zahlen und für Polynome (mit Koeffizienten in einem Körper). Wodurch
Mehr3. Grundlegende Sprachkonstruktionen imperativer Programme
3. Grundlegende Sprachkonstruktionen imperativer Programme Java-Beispiele: Temperature.java Keyboard.java K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 4. Nov. 2015 2 Schwerpunkte
Mehr1. Der Einstieg in Java. Was heißt Programmieren?
1. Der Einstieg in Java Lernziele: Am Ende dieses Kapitels sollen Sie wissen, aus welchen Bestandteilen ein Java-Programm besteht, Java-Programme übersetzen und ausführen können, Möglichkeiten der Kommentierung
Mehr2. Programmierung in C
2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten Operatoren, Ausdrücke und Anweisungen Kontrollstrukturen (Steuerfluss)
MehrInformatik 1 - Translation Studies in Information Technology. Musterlösung zum Aufgabenblatt der ersten Pflichtübung im Wintersemester 16/17
Informatik 1 - Translation Studies in Information Technology INF1 TSIT MUSTERLÖSUNG: PFLICHTÜBUNG 1 Musterlösung zum Aufgabenblatt der ersten Pflichtübung im Wintersemester 16/17 Praktikum zur Vorlesung
MehrDynamische Programmierung. Problemlösungsstrategie der Informatik
als Problemlösungsstrategie der Informatik und ihre Anwedung in der Diskreten Mathematik und Graphentheorie Fabian Cordt Enisa Metovic Wissenschaftliche Arbeiten und Präsentationen, WS 2010/2011 Gliederung
MehrPrimitive Rekursion. Basisfunktionen: Konstante Funktion: const 3 3 (1,1, pr 1,3(g,h) (1,1)) Projektion: proj 3 (1,1, pr. Komposition: comp 3,2
Primitive Rekursion Basisfunktionen: Konstante Funktion: const Stelligkeit. Wert des Ergebnisses. Unabhängig von den Parametern. const (,, pr,(g,h) (,)) Stelligkeit. Projektion: proj Gibt die Komponente
MehrC# im Vergleich zu Java
C# im Vergleich zu Java Serhad Ilgün Seminar Universität Dortmund SS 03 Gliederung Entstehung von C# und Java Überblick von C# und Java Unterschiede und Gemeinsamkeiten Zusammenfassung und Ausblick Entstehung
MehrArithmetik und Algebra
Willkommen Gliederung "Hallo Welt!" für Fortgeschrittene Friedrich-Alexander-Universität Erlangen-Nürnberg Institut für Informatik Lehrstuhl 2 7. Juni 2005 Willkommen Gliederung Gliederung 1 Repräsentation
Mehr1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen
1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen II.2.2 Methoden, Unterprogramme und Parameter - 1 - 2. Methoden
Mehr2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik
Stefan Lucks Diskrete Strukturen (WS 2009/10) 57 2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Uhr: Stunden mod 24, Minuten mod 60, Sekunden mod 60,... Rechnerarithmetik: mod 2 w, w {8, 16, 32,
MehrProgrammieren I. Kontrollstrukturen. Heusch 8 Ratz 4.5. www.kit.edu. Institut für Angewandte Informatik
Programmieren I Kontrollstrukturen Heusch 8 Ratz 4.5 KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Arten von Kontrollstrukturen
MehrKapitel 3: Variablen
Kapitel 3: Variablen Thema: Programmieren Seite: 1 Kapitel 3: Variablen Im letzten Kapitel haben wir gelernt, bestimmte Ereignisse zu wiederholen solange eine Bedingung erfüllt ist. Nun möchten wir aber
MehrInf 12 Aufgaben 14.02.2008
Inf 12 Aufgaben 14.02.2008 Übung 1 (6 Punkte) Ermitteln Sie eine mathematische Formel, die die Abhängigkeit der Suchzeit von der Anzahl der Zahlen N angibt und berechnen Sie mit Ihrer Formel die durchschnittliche
MehrÜbungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11
Übungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11 Fakultät für Informatik Lehrstuhl 1 Dr. Lars Hildebrand Carla Delgado-Battenfeld Fatih Gedikli Tobias Marschall Benjamin Schowe
MehrDynamische Programmierung
Dynamische Programmierung Julian Brost 11. Juni 2013 Julian Brost Dynamische Programmierung 11. Juni 2013 1 / 39 Gliederung 1 Was ist dynamische Programmierung? Top-Down-DP Bottom-Up-DP 2 Matrix-Kettenmultiplikation
MehrProgrammieren in C. C Syntax Datentypen, Operatoren und Kontrollstrukturen. Prof. Dr. Nikolaus Wulff
Programmieren in C C Syntax Datentypen, Operatoren und Kontrollstrukturen Prof. Dr. Nikolaus Wulff Elementare Typen Imperative und objektorientierte Programmiersprachen bieten i.d.r. einen Satz elementarer
MehrSpeicher und Adressraum
Linearer Speicher (Adressraum) Technische Universität München Speicher und Adressraum Freie Speicherhalde (Heap) Freier Speicherstapel (Stack) Globale Variablen Bibliotheksfunktionen Laufzeitsystem Programmcode
MehrJava - Zahlen, Wahrheitswerte und Zeichen. Leibniz Universität IT Services Anja Aue
Java - Zahlen, Wahrheitswerte und Zeichen Leibniz Universität IT Services Anja Aue Kommentare Hilfe für den Entwickler. Wer hat wann welche Änderung vorgenommen? Warum werden diese Anweisungen hier ausgeführt?
MehrLineare Gleichungssysteme
Fakultät Grundlagen Juli 2015 Fakultät Grundlagen Übersicht Lineare Gleichungssystem mit 2 Variablen 1 Lineare Gleichungssystem mit 2 Variablen Beispiele 2 Fakultät Grundlagen Folie: 2 Beispiel I Lineare
MehrMusterlösungen zur Klausur Informatik 3
Musterlösungen zur Klausur Informatik 3 Justus-Liebig-Universität Gießen Wintersemester 2003/2004 Aufgabe 1 (6 Punkte) Man kreuze bei den folgenden Deklarationen und Definitionen jeweils an, ob sie aus
MehrSeminararbeit zur Zahlentheorie. Die Gaußschen Zahlen
Universität Paderborn WS 2007/2008 Warburger Str. 100 33098 Paderborn Seminararbeit zur Zahlentheorie Die Gaußschen Zahlen Tatjana Linkin, Svetlana Krez 20. November 2007 INHALTSVERZEICHNIS 1 Inhaltsverzeichnis
Mehr4: Algebraische Strukturen / Gruppen
Stefan Lucks Diskrete Strukturen (WS 2009/10) 120 4: Algebraische Strukturen / Gruppen Definition 46 Sei G eine nichtleere Menge. Eine Funktion : G G G bezeichnen wir als Verknüpfung auf G. Das Paar (G,
MehrJava. CoMa-Übung II TU Berlin. CoMa-Übung II (TU Berlin) Java / 28
Java CoMa-Übung II TU Berlin 24.10.2012 CoMa-Übung II (TU Berlin) Java 24.10.2012 1 / 28 Themen der Übung 1 Java-Installation 2 Hello World 3 Temperature CoMa-Übung II (TU Berlin) Java 24.10.2012 2 / 28
MehrElementare Zahlentheorie. Diskrete Strukturen. Winter Semester 2012 #
Erster Teil 1 Elementare Diskrete Strukturen Winter Semester 2012 # 342 207 Prof. Armin Biere Institut für Formale Modelle und Verifikation Johannes Kepler Universität, Linz http://fmv.jku.at/ds Literatur
MehrJava Einführung Klassendefinitionen
Java Einführung Klassendefinitionen Inhalt dieser Einheit Java-Syntax Klassen definieren Objekte instanziieren Instanzvariable deklarieren Klassenvariable deklarieren 2 Klassen definieren In der Problemanalyse
MehrSilke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode
Methoden und Klassen Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik Wiederholung Jede Applikation braucht eine Klasse mit einer main-methode Eintrittspunkt in das Programm Die main-methode
MehrStudent: Alexander Carls Matrikelnummer: Aufgabe: Beschreibung des euklidischen Algorithmus Datum:
Berufsakademie Stuttgart / Außenstelle Horb Studienbereich Technik Studiengang Informationstechnik Kurs IT2006, 2.Semester Dozent: Olaf Herden Student: Alexander Carls Matrikelnummer: 166270 Aufgabe: Beschreibung
MehrAlgorithmen und Datenstrukturen 01
26. April 2012 1 Organisatorisches Über mich Wichtige Links 2 Besprechung Blatt 0 Übungsablauf und Abgabesystem 3 Pseudocode Text Pseudocode Pseudocode Ablaufdiagramm 4 Datentypen & Entscheidungsgehalt
Mehrpublic class SternchenRechteckGefuellt {
Java programmieren: Musterlösungen Konsolen-Aufgaben Aufgabe 1: Gefüllte Rechtecke zeichnen Schreiben Sie ein Programm, das ein durch Sternchen gefülltes Rechteck zeichnet. Der Benutzer soll Breite und
MehrGrundlagen der Programmierung Prof. H. Mössenböck. 6. Methoden
Grundlagen der Programmierung Prof. H. Mössenböck 6. Methoden Parameterlose Methoden Beispiel: Ausgabe einer Überschrift class Sample { static void printheader() { // Methodenkopf Out.println("Artikelliste");
MehrEinführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005
Einführung in Java PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Gliederung 1. Was ist Java / Geschichte von Java 2. Prinzip der Plattformunabhängigkeit 3. Wie kommt man vom Quellcode zum Programm
Mehr1 Potenzen und Polynome
1 Potenzen und Polynome Für eine reelle Zahl x R und eine natürliche Zahl n N definieren wir x n := x x x... x }{{} n-mal Einschub über die bisher aufgetretenen mathematischen Symbole: Definition mittels
MehrRepetitorium Informatik (Java)
Repetitorium Informatik (Java) Tag 8 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Vererbung Vererbung Statischer Typ Dynamischer Typ 2 Polymorphie Overloading: Methoden überladen Overriding:
MehrPraktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben
Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16 Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand, Marcel Preuß, Iman Kamehkhosh, Marc Bury, Diana Howey Übungsblatt
MehrParallele Prozesse. Prozeß wartet
Parallele Prozesse B-66 Prozeß: Ausführung eines Programmes in seinem Adressraum (zugeordneter Speicher) Parallele Prozesse: gleichzeitig auf mehreren Prozessoren laufende Prozesse p1 p2 verzahnte Prozesse:
Mehr1.2 Attribute und Methoden Aufbau einer Java-Klasse:
Aufbau einer Java-Klasse: public class Quadrat { int groesse; int xposition; String farbe; boolean istsichtbar; public void sichtbarmachen() { istsichtbar = true; public void horizontalbewegen(int distance){
Mehr