flashpixx
Mitglieder-
Gesamte Inhalte
8302 -
Benutzer seit
-
Letzter Besuch
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Alle Inhalte von flashpixx
-
Vielleicht erstmal zum Multitasking: Du würdest im Idealfall eine Anwendung starte, die 100% den CPU auslastet. Nun startest Du eine zweite Anwendung, die ebenfalls wenn sie alleine läuft den CPU zu 100% auslastet. Dein CPU kann aber nicht mehr als 100% Leistung bringen, d.h. das Multitasking macht folgendes: Anwendung 1 läuft eine gewisse Zeit (meistens eine Anzahl von Taktzyklen), dann wird sie pausiert und die kompletten Daten zwischen gespeichert, Anwendung 2 wird aus der Pause aufgeweckt und ihre Daten werden nun in den Speicher transferiert und einige Taktzyklen verarbeitet, dann wird sie pausiert und Anwendung 1 wird aufgeweckt usw. Jede Anwendung lastet wenn sie aktiv läuft den CPU entsprechend aus, in unserem Fall zu je 100%, aber eben nie zur gleichen Zeit. Achtung, die Erklärung ist so sehr vereinfacht, in der Realität ist das komplizierter, da z.B. ja auch Zeit für das Restaurieren und Auslesen der Daten benötigt wird. ----- und dann zur Auslastung: Wenn ich nun sage, dass jede gestartete Anwendung eben immer eine feste Anzahl an Zyklen, die sie arbeiten darf, zur Verfügung hat, dann kann ich auch die Auslastung berechnen. Z.B. Du hast insgesamt ein Zeitintervall von 100 Zyklen, die Du an Deine gestarteten Anwendungen verteilen kannst. Der Extremfall ist, wenn Du jetzt 100 Anwendungen startest und jede Anwendung darf immer einen Zyklus beanspruchen, dann hast Du 100% Auslastung. Wenn Du eben nur 10 Anwendungen laufen hast, dann hast Du 10% Auslastung des CPU. ---- Ich hoffe, das ist so verständlich. Aber noch einmal der Hinweis, dass ist jetzt alles sehr stark vereinfacht ausgedrückt und dadurch, wenn ich es sehr "hart bewerte" falsch. Du hast in einem heutigen System sehr viele Prozesse (Threads), die irgendwelche Aufgaben übernehmen. Jeden Prozess kann man priorisieren, d.h. er kann mehr oder weniger CPU Berechnungszeit bekommen bzw anfordern, das wirkt sich ja alles auch noch aus. Anwendungen bestehen heute nicht mehr aus einem Prozess, sondern wie z.B. beim Browser werden zum Laden einer Seite eine Vielzahl von Threads benutzt, die dynamisch zur Laufzeit erzeugt werden. So etwas müsstest Du noch alles berücksichtigen. HTH Phil
-
gutes Visual C++ openbook (muss nicht zwingend openbook sein)
flashpixx antwortete auf Gateway_man's Thema in .NET
Ich arbeite selbst mit VS und siehe den Screenshot. Vielleicht solltest Du Dir erst einmal die Grundlagen von C++ aneignen. Du kannst nicht einfach C# mit C++ vergleichen, C++ ist eine Sprache die es für jedes OS gibt, d.h. es gibt unzählige Komponenten. Ich nutze VS nur als IDE, wenn das Programm nachher unter Windows läuft verwende ich keine WinAPI Aufrufe, sondern ich nutze die STD + Boost, da der Code auf mehreren Plattformen kompiliert wird. Als GUI API, da ebenfalls plattform-unabhängig Qt. Für 3D Anbindung nutze ich kein DirectX, sondern OpenGL, da ich auch hier direkt aus Qt meine Vertex- / Fragmentshader os-unabhängig setzen kann. Wenn Du nun eine reine Windows Anwendung entwickeln willst, dann lerne zunächst die Grundlagen von C++, sprich Sprachstrukturen, wenn Du das kannst, dann besorge Dir Literatur zu der Windows API o.ä., damit Du direkt eine rein Win32 Anwendung erzeugen kannst. Eine Online Quelle generell für Windows ist die MSDN (MSDN: Microsoft Development, MSDN Subscriptions, Resources, and More). Mein aktuelles Projekt besteht aus folgenden Bibliotheken: Qt, Boost, OpenMPI / MS-MPI, GSL (GNU Scientific Library), CGAL (Computational Geometry Algorithms Library) und OpenGL. Für Qt, Boost, die Standard Library von C++ und GSL besitze ich Literatur. OpenMPI bzw MS-MPI und CGAL haben gute Online Quellen / Mailinglisten. Wenn Du C++ Anfänger bist, dann fange auch mit C++ an, es gibt eine Menge guter Tutorials. Wenn Du das beherrschst, entscheide Dich, was Du konkret benötigst und suche dann gezielt danach. Eine Online Einführung zu C++ wirst Du wohl nicht finden, da es einfach zu viel gibt bzw. man dann sich schon auf eine Richtung fest legen muss. Du benötigst Visual Studio nicht, um C++ zu programmieren, Du brauchst nur einen Compiler, nutze z.B. GCC. Phil -
Welchen Sinn macht das? Wenn Du 10.000 Datensätze hast, hast Du 10.000 Spalten, Spaltennamen müssen eindeutig sein wie stellst Du das sicher? Phil
-
gutes Visual C++ openbook (muss nicht zwingend openbook sein)
flashpixx antwortete auf Gateway_man's Thema in .NET
ich zitiere aus Microsoft Visual Studio ? Wikipedia Du wirst sicher kein Buch finden, dass Dir jede Komponente und die dazugehörigen Headerfiles erklärt. Es gibt Unmengen an Bibliotheken zu denen es wiederum eigene Literatur gibt, deshalb musst Du schon Dir vorher überlegen was Du machen möchtest bzw. was Du suchst. Aber Du scheinst ja nicht daran interessiert zu sein, dass man Dir hilft, da Deine Fragen Aussagen sind und Du nicht bereit bist, mehr Informationen zu liefern Phil -
Mein Tipp, nicht zwei Arrays nehmen, sondern nur die Position des Elementes umrechnen Phil
-
Da möchte ich Dir einmal ganz schnell den Zahl ziehen. Informatik ist eine Wissenschaft und nicht programmieren. Informatik ist zunächst, gerade im Grundstudium, Mathematik. Dazu kommen dann noch Anwendungsfächer, wie z.B. Computergraphik, technische Informatik, evtl Physik oder Elektrotechnik usw. Zusätzlich zur Mathematik die ca 30% ausmacht, kommen dann z.B. Fächer wie theoretische Informatik, usw. Nein, im Sinne, dass man "Netzwerke studieren kann". Du kannst Dich spezialisieren, sprich Du würdest Deinen Bachelor Informatik machen und im Master dann z.B. den Schwerpunkt auf technischer Informatik, Rechnernetze / verteilte Systeme legen. Aber und das sollte Dir klar sein, dass ein Informatikstudium nicht daraus besteht, irgendwelche Software am Rechner zu installieren oder Netzwerke zusammen zu stecken bzw Router o.ä. zu konfigurieren. Phil
-
gutes Visual C++ openbook (muss nicht zwingend openbook sein)
flashpixx antwortete auf Gateway_man's Thema in .NET
Lass Dir doch nicht alles aus der Nase ziehen! Was hat denn Visual Studio mit dem Problem zu tun? VS ist eine IDE, Du kannst auch Notepad nehmen. Noch einmal: Was ist Dein Ziel? Phil -
gutes Visual C++ openbook (muss nicht zwingend openbook sein)
flashpixx antwortete auf Gateway_man's Thema in .NET
Ist halt noch etwas die Frage was Du machen möchtest. Ich nutze selbst die Boost, CGAL, Qt und OpenMPI (bzw MS-MPI). Boost und Qt sind sehr gut online dokumentiert, CGAL muss ich mich noch etwas einarbeiten und Qt ist auch online zu finden. Die OpenGL Sachen, die ich aus Qt heraus verwende habe ich den Büchern zu OpenGL direkt stehen bzw sie sind auch online verfügbar Phil -
Ms SQL - Datensatz einer Tabelle in n Datensätze einer View
flashpixx antwortete auf Grinskeks's Thema in Datenbanken
Was ist daran mathematisch? Vielleicht dass Du Mengen verbindest, aber es ist weit hergeholt. Ich kann Dir nur dringend den Rat zu dem Pivot geben, denn der Union muss eben einige Selects ausführen und unter Umständen hast Du keine Eindeutigkeit mehr für jeden Datensatz Phil -
Ich will einmal dazu ergänzen, dass viele noch dem Glauben anhaften, dass man alles in die Anwendung programmieren muss. Meisten werden 2- bzw 3-schichtige Architekturen noch nicht voll ausgereizt. Zu @Dim muss man definitiv noch ergänzen, dass man häufig "dicke" DBMS Abwärme produzieren lässt, als diese wirklich voll auszureizen. Zu dem Aspekt der Synchronität von @perdian sehe ich da keine Einwände. Ich habe ein Testingsystem evtl sogar mehrere, ein Produktivsystem und auch andere Systeme. Während der Entwicklung kann es immer irgendwo Probleme geben, aber das ist letztendlich ein Kommunikationsproblem. Ob das Problem nun in einer DLL oder in der Datenbank liegt, ist letztendlich gleich Phil
-
Also ich verstehe das Problem an sich nicht. Wenn ich eine Menge an Daten brauche, dann erstelle ich diese per Select direkt (oder hinterlege dafür einen View). Nun kann ich mit meiner SP den View bzw das Result des Selects einfach verarbeiten. Für mich ist eine "Menge an dynamischen Variablen" eine Liste (kein Array, da statisch), eine Liste ist nichts anderes als ein Resultset einer Tabelle / Statements (entweder horizontal als Spalten oder vertikal als Zeilen, spielt aber keine Rolle, da ich diese durch ein Pivot entsprechend drehen kann). Phil
-
Ich kann dazu nur sagen, dass in meiner Berufsschulklasse, 5-6 Studienabbrecher (FH und Uni), einer mit erweitertem Hauptschulschulabschluss, einer mit Mittlerer Reifer und der Rest Abiturienten waren. Notentechnisch kann man da nur bedingt etwas sagen, dann auch wenn der Abiturient länger die Schule besucht hat, heißt das nicht zwingend, dass er auch gute Noten in der Berufsschule hat. Viele sehen leider die Berufsschule als "Freizeit" zum Beruf an Wir waren irgendetwas knapp über 20 (FIAE) Phil
-
Informatik Studieren - Wie ist der Alltag?
flashpixx antwortete auf Patrick.W's Thema in Ausbildung im IT-Bereich
Ein kleiner Hinweis aus der Praxis was wir in vielen Lesungen fest gestellt haben, dass Neuauflagen durchaus auch eine Menge Tippfehler haben, also evtl doch vielleicht das Vorgängerbuch besorgen, wenn die neuste Version grade erschienen ist (Gerade Computergraphik hat da manchmal in den mathematischen Darstellungen Fehler bei den Indizies oder Vorzeichenfehler) Tipp dabei: Wirklich mehrere Quellen quer lesen, wenn es keinen Sinn macht Phil -
Informatik Studieren - Wie ist der Alltag?
flashpixx antwortete auf Patrick.W's Thema in Ausbildung im IT-Bereich
Wenn Du Dir einmal die von mir genannten Literaturvorschläge anschaust und z.B. Dir mehrere Uniskripte für Informatik 1+2 / Analysis 1+2 / Lineare Algebra 1+2 anschaust, wirst Du feststellen, dass diese Werke den Stoff der Fächer ganz gut treffen. In den Grundvorlesungen werden sicherlich keine neuen Forschungsinhalte vermittelt, so dass die Themen z.B. Reihen, Folgen, Integrale, Differentiale, Algroithmen & Datenstrukturen (Listen, Stack, Rekursion usw), durchaus auch an den verschiedenen Hochschulen eben unterrichtet werden. Evtl wird es eine andere Programmiersprache sein oder der Prof wird es etwas theoretischer bzw praktischer machen, inhaltlich kann ich auch durch einen Uniwechsel bestätigen, sind die Grundlesungen nahezu identisch Phil -
Ms SQL - Datensatz einer Tabelle in n Datensätze einer View
flashpixx antwortete auf Grinskeks's Thema in Datenbanken
Du kannst über einen Union und einzelne Selects jede einzelne Spalte abfragen, was ich aber etwas unschön finde. Ich würde da zu einem Pivot raten. Für MS SQL habe ich auf die Schnelle das hier gefunden Understanding SQL 2005's new PIVOT clause HTH Phil -
Informatik Studieren - Wie ist der Alltag?
flashpixx antwortete auf Patrick.W's Thema in Ausbildung im IT-Bereich
Zu Jogibaer0411 kann ich nur F'Ack sagen. Der PC gehört nach Hause, in der Lesung kommt man mit Block und Papier locker aus. Eine gute Lerngruppe, nicht weil man die Leute nett findet, sondern weil sie studieren wollen (Leute die lieber Party machen gibt es eine Menge). Evtl noch ein paar Einführungsbücher und einen funktionierenden INet Zugang, reicht definitiv erst einmal aus Phil -
Informatik Studieren - Wie ist der Alltag?
flashpixx antwortete auf Patrick.W's Thema in Ausbildung im IT-Bereich
Das mag vielleicht auf eine FH zutreffen, aber definitiv nicht auf eine Uni. Das Script und die Vorlesung sind dafür gedacht, dass Du einen "roten Faden" bekommst, Tutorien / Übungen zeigen die knapp die Praxis, aber ich gehe nicht davon aus, dass Du aufgrund dessen manche Problemstellungen direkt beherrschst. Vor allem in den höheren Semestern ist definitiv Eigeninitiative gefragt. Als Literatur kann ich für Informatik das hier empfehlen "Lehrbuch Grundlagen der Informatik" von Balzert, da es so die Grundlagen der Algorithmen und Datenstrukturen ist. Zusätzlich ist auch von Robert Sedgewick das Buch "Algorithmen" zu empfehlen. Für Analysis wären z.B. der Königsberger und Heuser zu empfehlen (Analysis 1 und 2). Für lineare Algebra ist der Pareigis ganz gut (Lineare Algebra für Informatiker), deckt aber oft nicht den kompletten Stoff für Algebra 1 und 2 ab Zu meinem Vorposter möchte ich anmerken, dass ein Vergleich zwischen BWL und Informatik etwas weit hergeholt ist. Informatik kommt aus dem mathematischen Bereich, Du muss in der Informatik keine Daten interpretieren, sondern Formalismen entwickeln z.B. ist eine typische Klausuraufgabe ist zu zeigen, in welcher Komplexitätsklasse ein Algorithmus ist oder zu zeigen, dass die Länge der Koch-Kurve unendlich, die Fläche dahingegen endlich ist. Analog sehen die Klausuren in der Mathematik aus, es geht nicht darum einen Grenzwert oder Integral zu bestimmen, sondern es gibt eine Aussage wie z.B. "zeigen Sie, dass die Reihe für jeder natürliche Zahl s in N mit x >= 2 konvergiert: Summe(k=1 bis unendlich) 1/k^s" Phil -
Informatik Studieren - Wie ist der Alltag?
flashpixx antwortete auf Patrick.W's Thema in Ausbildung im IT-Bereich
Ich mache Dir mal den Vorschlag, dass Du Dich bei mir persönlich per ICQ melden kannst, wenn Du gezielte Fragen hast Phil -
Informatik Studieren - Wie ist der Alltag?
flashpixx antwortete auf Patrick.W's Thema in Ausbildung im IT-Bereich
Was man eigentlich immer raten kann, dass Du Dich unter dem Semester in die Veranstaltungen Deiner favorisierten Hochschule reinsetzen und Dir mal 3 Wochen den Stoff vor Ort antust. Diese "Schülerveranstaltungen" divergieren zu den normalen Veranstaltungen, zwischen FH, Uni und auch TU sind durchaus große Unterschiede. Ich bin selbst an einer TU und dort ist der Schwerpunkt in der Mathematik. Ich muss auch sagen, dass manche Fächer mir locker von der Hand gehen und in andere muss ich Arbeit stecken, aber generell möchte ich gute Noten >= 2,0 haben, d.h. ich muss auch in meinen "guten" Fächern schon wirklich Zeit investieren. Aber da ich langsam zum Ende komme, kann ich sagen, dass mit der Zeit "die Luft dünner wird", d.h. viele bleiben auf der Strecke liegen und dadurch werden die Anzahl der Leute, die in der Vorlesung sitzen weniger, was einem dann auch gewisse Freiheiten einräumt z.B. mal spontan ein Thema in der Lesung zu besprechen oder eben gezielt Fragen zu stellen. Die Professoren lassen dann auch teilweise Freiräume für Themenvorschläge oder halten dann Übungen / Tutorien selbst. Ich kann aktuell zu 2 Vorlesungen sagen, dass wir in einer zu dritt (inkl Prof) und in der anderen zu acht (inkl Prof) sind. Das heißt nicht, dass es weniger Arbeiter wird, aber es wird entspannter Anfängervorlesungen wie Informatik 1-4, Mathe (Analysis und lineare Algebra je 1 und 2), technische Informatik usw hast Du meistens 2 Vorlesungen in der Woche, dazu eine große Übung und je ein Tutorium, was aber nie Pflicht ist. Dazu kommen dann noch die Zeit, die Du selbst für Hausaufgaben brauchst. Am Beispiel Analysis wäre das dann in der Woche ca an Zeit: 2x90min Vorlesung, 1x90min große Übung, 1x90min Tutorium und ca 8-12 Stunden für Hausaufgaben = 18 Stunden für Analysis. Wenn Du pro Fach je einen vollen Tag an Arbeitszeit rechnest liegst Du ganz gut. Im ersten Semester hättest Du meist die Fächer: Programmierkurs, Informatik 1, Analysis 1 und lineare Algebra 1 (je nach Uni wird auch lineare Algebra in 2 Fächer Lineare Algebra und diskrete Strukturen aufgeteilt so dass Du 5 Fächer hast). Natürlich kann man sich dann für die Hausaufgaben auch für die Abgabe mit meist bis zu 2 anderen organisieren, so dass dann eben jeder nicht alles bearbeiten muss, aber trotzdem muss man den Stoff spätestens für die Prüfung können D.h. Du kannst Dir einmal selbst ausrechnen, was so ganz grob an Zeit investiert werden sollte. Alles ist meistens ohne Anwesenheitspflicht, so dass es Dir frei steht zu erscheinen. Es gibt meist drei Arten von Studenten (mal abgesehen von den Leuten, die nichts oder sporadisch was machen): der Stresslerner: Während des Semesters wird nur das nötigste getan, dann aber zum Prüfungszeitraum wird wirklich extrem viel auch Nächste lang gelernt. Dafür sitzt der Stoff dann, weil er unter Druck ins Hirn gelernt wurde der Prüfungslerner: Es wird vor der Prüfung das Wissen komplett kurz genau auf die Prüfung bzw die Fragen die der Prof stellt gelernt. Nach der Prüfung wird das Wissen wieder schnell vergessen. Die Prüfung kann man auch gut damit bestehen, aber man muss evtl für ähnliche Fächer eben wieder neu lernen und Wissen anwenden kann man nur selten kontinuierlicher Lerner: Der Student der regelmäßig während des Semesters arbeitet und zu den Prüfungen eben nochmal intensiver lernt. Das Wissen bleibt dauerhaft im Kopf, zur Prüfung werden Definitionen auswendig gelernt, die aber nach der Prüfung vergessen werden können, das Basiswissen bleibt aber, somit hat man auf Dauer aber die besten Grundlagen auch für andere Fächer Es ist Dir immer überlassen wie und auch was Du lernst. Natürlich haben die Leute, die eben nur auf den letzten Drücker lernen, subjektiv gesehen mehr Freizeit, müssen aber dann eben damit leben, dass zu gewissen Zeiten sie eben massiv stressresistent sein müssen Phil -
Informatik Studieren - Wie ist der Alltag?
flashpixx antwortete auf Patrick.W's Thema in Ausbildung im IT-Bereich
Ich studiere Informatik: Generell gilt Du wirst sehr viel Mathematik haben, d.h. nicht, dass es sich um "Rechnen" handelt, sondern um Fächer wie Analysis, Numerik, lineare Algebra, Stochastik etc. Ob man zu Lesungen geht oder nicht, ist eben von jedem selbst abhängig bzw. auch vom Prof. Nicht jeder Prof hat ein Skript o.ä. Bei mir ist zwar ein Skript vorhanden, aber die mündl. Erklärungen bekommt man eben nur in der Lesung. Es ist auch eine Frage der persönlichen Einstellung, wie viel Zeit und auch Engagement Du in Dein Studium stecken willst. Ich kann Dir sagen, dass die Semesterwochenstunden jedenfalls zu Beginn des Studiums nur schwer zu erfüllen sind. Gerade in Mathe und auch den Grundvorlesungen hast Du meist wochenweise Hausaufgaben und die werden Dich jede Menge Zeit kosten. Evtl wirst Du in einigen Fächern gut sein und anderen eine Menge nachlernen müssen. Da man als Bachelor einen gewissen Notenschnitt erreichen muss, muss man eben auch entsprechend Zeit in die Klausurvorbereitung stecken. Der Modulplan ist eine Richtlinie, es ist kein Stundenplan wie in der Schule, der eingehalten werden muss. Zur Freizeit kann ich Dir ehrlich sagen, sehr wenig. Ich bin froh, wenn ich zwei Mal die Woche je 2 Stunden mein Training als Kampfsporttrainer machen kann. Teilweise fällt das aber auch mal aus, wenn Seminare o.ä. anstehen. Es wird mit der Zeit durchaus besser, denn je weiter man im Studium kommt, um so mehr Freiheiten erhält man, d.h. z.B. sind Hausaufgaben keine Pflichtabgabe mehr oder für Seminare reicht nur die Präsentation ohne ein zusätzliche Ausarbeitung. Aber es wird eben auch erwartet, dass man sich selbst zusätzliche Arbeit macht. Generell gilt, nur Skript lernen um zu bestehen wird auf die Dauer nicht reichen. Zum Laptop würde ich Dir raten, dass Du zwar keinen brauchst aber er auch nicht schadet. Vor allem auch hier der Ratschlag sorge dafür dass er lauffähig ist. Wenn er nicht läuft wirst Du mehr Ärger haben. Zusätzlich zu den Vorlesungen sollte man sich auch in Informatik nahe Themen einarbeiten z.B. LaTeX, diverse Programmiersprachen bzw entsprechende Bibliotheken oder auch Tools wir Maple, Matlab oder R (kommt aber auf den Schwerpunkt an). Es wird generell Vorausgesetzt, dass man Excel, Word und Powerpoint ohne Probleme beherrscht bzw man muss es selbst lernen. Schau Dir ggf einmal die Verschiedenen Dinge bei mir auf der Webseite an, da ist vom Anfang bis zu meinem aktuellen Studienstand einige Bsps vorhanden Phil -
Das heißt dann dass "ab" in Bucket a oder (xor) b kann. Aber wenn ich nun 5 mal ein Element habe, dass "ab" heißt, dann kann ich 4 in a und 1 in b stecken, aber bei 9 "ab"'s geht das nicht mehr in 2 Buckets, denn das würde den pro Bucket maximalen Wert übersteigen. Was man rein technisch machen kann, Du würdest von jedem Element ein Hash bilden und eine entsprechende Hashmap benutzen, die Duplikate zulässt. D.h. Du weißt dem Bucket einen Hash zu, jedes Element, das in den Bucket soll, erhält den identischen Hash. Ist nun die erste Hashmap voll also in Deinem Bsp es gäbe 6 "ab"'s, und 4 hast Du in den ersten Bucket einsortiert, dann würde die nächsten 2 einen anderen Hash bekommen und in Bucket "b" landen. Schau Dir das Prinzip des "Sondierens" Hashtabelle ? Wikipedia einmal an. Das ist genau dafür gedacht. Aber Du erschlägst nicht das Problem, dass Du, wenn Du wie im Bsp 9 Elemente hast, aber nur 2 Buckets die verwendet werden dürfen, eben einen Fehler produzierst. Also der erste Ansatz ist eine Hashmap die mehrere Schlüssel zulässt, damit ist jeder Hash das Bucket und dahinter liegen die Werte, Du musst dann eben nur noch eine maximale Begrenzung einführen. Mein Tipp wäre: Nimm eine entsprechende Hashmap aus Java und vererbe alle in Deine eigene Klasse, in der Du eben nur die entsprechenden Routinen mit dem Count erweiterst. HTH Phil
-
Schau Dir bitte einmal Induktionsbeweise an, denn so würde ich Dir als Tutor den Beweis nicht durchgehen lassen! Du musst den Beweis zu Beginn der Schleife benutzen, also für j==0. Dann musst Du entsprechende der Induktion und des Codes zeigen, dass immer Deine Bedingung für ein j+1 gilt, wenn Du voraussetzt, dass j gilt und der dritte Schritt ist, Du musst zeigen, dass die Bedingung auch nach der Schleife also für j==n gilt und auch dass j == n wird Wenn Du nämlich einen Fall auslässt, dann ist damit gezeigt, dass der Befehl irgendetwas macht, aber es ist nicht sicher gestellt, dass der Algorithmus terminiert. Der Beweis via Induktion für Schleifeninvarianten ist dafür gedacht zu zeigen, dass ein Codestück / Algorithmus bei einer gültigen Eingabe von Daten immer terminiert. Nach Deinem Beweis kann ich das j > n wählen und damit habe ich in Deinem Verfahren schon ein Gegenbeispiel gefunden, dass Deinen Beweis widerlegt. Es geht hier nicht um "programmieren", sondern um eine mathematische formale Beweisführung Phil
-
Dann lies doch einmal den Artikel genau und überlege Dir, ob das bei Deiner Invariante zutreffend ist. Deine 2. Aussage I(a[j-1]) kann schon nicht stimmen, denn j ist zu Beginn == 0, somit ist a[j-1] nicht definiert und damit schlägt jeder Beweis fehl. Zusätzlich hast Du nicht j-1 im Code stehen, sondern j+1, d.h. Du musst Deinen Beweis schon anhand des Codes führen Phil
-
also das hier hilft definitiv weiter (vor allem das Bsp) Schleifeninvariante ? Wikipedia Kann man aber durch eigenständige Recherche auch selbst finden Phil
-
Warum casten, ist immer unschön !? Random (Java 2 Platform SE 5.0) siehe die Methode "nextint" Phil