vielleicht alt aber gut: Informatiker und Woelfe



  • (quelle http://www.thomashertweck.de/texte/math/infowolf.txt )

    Informatiker und Woelfe

    Man stelle sich einmal einen Informatiker im tiefsten Winter in einem
    dunklen Wald von hungrigen Woelfen gejagt vor. Hier ist der Informatiker
    geradezu in seinem Element. Er steht naemlich vor einem Problem, und solche
    zu loesen hat er ja waehrend seines Studiums sehr ausfuehrlich und muehsam
    erlernt. Das Problem ist zwar bereits gegeben, aber irgendwann einmal hat er
    vor langer, langer Zeit gelernt, dass ein Problem erst spezifiziert sein
    will. Er beginnt also:

    Gegeben: Landschaft mit 1 Informatiker und n Woelfen, n aus NAT
    Gesucht: Landschaft mit 1 Informatiker und keinen Woelfen
    Loesungsweg: Woelfe mit einem Pruegel verjagen.

    Sicher kann sich unser Informatiker denken, dass das Problem nicht einfach
    zu loesen ist. Also beginnt er, es in Teilprobleme zu zerlegen.

    Etwa in n Teilprobleme:

    fuer alle i aus (1..n): den Wolf i verjagen.

    Nun ist unser Informatiker uebergluecklich. Er benutzt eine simple
    FOR-NEXT-Schleife, in der er nacheinander die n Teilprobleme loest und somit
    seine Teilloesungen sogar schon zu einer Gesamtloesung zusammengesetzt hat.
    Dass der Algorithmus korrekt ist und terminiert, hat unser Informatiker
    schnell bewiesen. Was nun weiter geschieht, ist typisch, wenngleich es zwei
    Moeglichkeiten gibt.

    Fall 1 - Wir haben einen Durchschnittsinformatiker vor uns.

    In Ermangelung eines Rechners benutzt er sich selbst als Maschine und laesst
    das Programm auf sich ablaufen. Er beginnt damit, den Wolf Nr. 1 zu
    verjagen, kommt zu Wolf Nr. 2, doch spaetestens jetzt hat ihn ein Wolf, der
    lauf Algorithmus noch gar nicht an der Reihe ist, ins Bein gebissen, worauf
    er in Panik geraet, das ganze schoene formale Denken vergisst und einfach
    instinktiv die Flucht ergreift. Spaeter dann, wenn er wieder in Sicherheit
    ist und wieder klar denken kann, bricht eine ganze Welt in ihm zusammen.
    Dies kommt davon, wenn man sich als Durchschnittsinformatiker mit
    praktischen Problemen beschaeftigt.

    Fall 2 Ganz anders, wenn wir einen hochbegabten, mathematisch besonders
    geschulten Informatiker aus Hamburg in die Wildnis schicken, der schon nach
    dem 3. Semester das Vordiplom und nach dem 7. Das Hauptdiplom gemacht hat.

    Er sieht zwar n Woelfe, zweifelt jedoch daran, dass die Zahl der Woelfe ohne
    sein Zutun konstant bleiben wird. Es koennten ja waehrend des Verjagens eine
    noch nicht verjagte Woelfin Junge werfen. Um den Aufwand des Woelfeverjagens
    unter diesem Aspekt abzuschaetzen, muss zuerst eine Differentialgleichung
    geloest werden, ganz abgesehen davon, dass das Problem neu spezifiziert
    werden muss. Mit Erschrecken stellt unser Informatiker fest, dass ab einem
    bestimmten n der Algorithmus nicht mehr terminiert (es werden in gleicher
    Zeit mehr Junge geworfen, als er Woelfe verjagen kann). Er wird also eine
    neue Spezifikation vornehmen.

    Gegeben: Ort a mit n Woelfen und 1 Informatiker, ein Ort b;

    Gesucht: Ort a mit n+k Woelfen (k ist die Anzahl der zwischenzeitlich
    geborenen Woelfe), ein Ort b ohne Woelfe mit mindestens einem Informatiker.

    Loesungsweg: Flucht von Ort a nach Ort b.

    Nach Ausfuehrung seines Algorithmus trifft er dann auf unseren
    Durchschnittsinformatiker, der wahrscheinlich auf eine Baumspitze
    gefluechtet ist, wohin er sich eilends auch begibt und wartet, bis die
    Woelfe wieder abziehen. Sind die Woelfe erst weg, so werden sich beide
    Informatiker schnell darueber einig, dass man den Baum am besten per
    rekursivem Abstieg herunterkommt. Da sie lange auf dem Baum sassen, waren
    sie stark durchfroren. Doch zum Glueck kam ihnen eine alte
    Algorithmenentwurfsmethode entgegen, und eine alte Axt, die herumlag,
    entpuppte sich als ein ausgezeichnetes Programmierwerkzeug.



  • noch besser:
    Das Schweigen der Lemma 😉

    "Das Schweigen der Lemma. Ein Horror-Schocker, in dem Primzahlen
    willkuerlich in Faktoren zerlegt werden, und arme, kleine Epsilons auf
    grausamste Weise solange geteilt werden, bis sie kleiner als null sind.
    Fiebern Sie mit, wenn e(x) mutig dem diabolischen Differential
    entgegentritt, ohne zu wissen, dass es d/dy ist. Erleben Sie die
    fuerchterlichsten Schrecken, wenn jungfraeuliche Kreise mit
    Moerderfraktalen zu Quadraten zerfleischt werden. Aber seien Sie auf der
    Hut... vor dem gnadenlosen MATLAB!

    T(v)=Spielfilm vergibt fuer diesen Film pi Sternchen."



  • @xroads:
    Danke für den morgentlichen Lacher 😃

    Aber den Schluss versteh ich nicht:

    Doch zum Glueck kam ihnen eine alte
    Algorithmenentwurfsmethode entgegen, und eine alte Axt, die herumlag,
    entpuppte sich als ein ausgezeichnetes Programmierwerkzeug.

    Was meinen die damit ?



  • Cpp_Junky schrieb:

    @xroads:
    Danke für den morgentlichen Lacher 😃 Aber den Schluss versteh ich nicht. Was meinen die damit ?

    Das die einfachsten und simpelsten Methoden immer noch die besten sind.



  • Is zwar auch alt, aber zeigt die kleinen aber feinen unterschiede der Programmierwelt 😃 😃

    Wer jagt wie Elefanten?

    Informatiker jagen Elefanten, indem sie Algorithmus A ausführen:

    begin {  
    	Gehe nach Afrika
    	Beginne am Kap der guten Hoffnung
    	Durchkreuze Afrika von Süden nach Norden bidirektional in Ost-West-Richtung
    	Für jedes Durchkreuzen tue {
    		Fange jedes Tier, das Du siehst Vergleiche jedes gefangene Tier mit einem als Elefant bekannten Tier halte an bei Übereinstimmung
    	}
    }
    

    Erfahrene Programmierer verändern Algorithmus A, indem sie ein als Elefant bekanntes Tier in Kairo plazieren, damit das Programm in jedem Fall korrekt beendet wird.

    Assembler-Programmierer bevorzugen die Ausführung von Algorithmus A auf Händen und Knien.

    SQL-Programmierer verwenden folgenden Ausdruck:
    SELECT Elefant FROM Afrika.

    Natural-Programmierer lassen sich von ADABAS einen Elefanten bringen.

    Logo-Programmierer reiten durch Afrika auf ihrer Schildkröte.

    COBOL-Programmierer tun dies auf einem Dinosaurier.

    BASIC-Programmierer bevorzugen jedoch einen mit Samt ausgepolsterten Einspänner, bei dem die Bremsen ständig angezogen sind.

    C-Programmierer bestimmen zuerst mit sizeof() die nötige Speichermenge für einen Elefanten, versuchen diese zu allozieren, vergessen dabei das Ergebnis abzuprüfen und schiessen dann mit wilden Pointern auf den Elefanten.

    C++ - Programmierer bestehen darauf, daß der Elefant eine Klasse sei, und somit schließlich seine Fang-Methoden selbst mitzubringen habe. Und wenn der Elefant Afrika verlassen sollte, dann wird ja automatisch sein Destruktor ausgelöst.

    Pascal-Programmierer markieren zuerst einen Punkt auf der Landkarte, schreiben dann END davor und träumen davon, daß Nikolaus Wirth von einem Elefanten totgetrampelt wird.

    Modula-Programmierer importieren einen Elefanten aus/von einem Zoo.

    LISP-Programmierer bauen einen Irrgarten aus Klammern und hoffen, daß sich der Elefant darin verirrt.

    Mathematiker jagen Elefanten, indem sie nach Afrika gehen, alles entfernen, was nicht Elefant ist und ein Element der Restmenge fangen.

    Erfahrene Mathematiker werden zunächst versuchen, die Existenz mindestens eines eineindeutigen Elefanten zu beweisen, bevor sie mit Schritt 1 als untergeordneter Übungsaufgabe fortfahren.

    Mathematikprofessoren beweisen die Existenz mindestens eines eineindeutigen Elefanten und überlassen dann das Aufspüren und Einfangen eines tatsächlichen Elefanten ihren Studenten.

    Ingenieure jagen Elefanten, indem sie nach Afrika gehen, jedes graue Tier fangen, das ihnen über den Weg läuft und es als Elefant nehmen, wenn das Gewicht nicht mehr als 15% von dem eines vorher gefangenem Elefanten abweicht.

    Wirtschaftswissenschaftler jagen keine Elefanten. Aber sie sind fest davon überzeugt, daß die Elefanten sich selber stellen würden, wenn man ihnen nur genug bezahlt.

    Statistiker jagen das erste Tier, das sie sehen n-mal und nennen es Elefant.

    Systemanalytiker wären theoretisch in der Lage, die Korrelation zwischen Hutgröße und Trefferquote bei der Elefantenjagd zu bestimmen, wenn ihnen nur jemand sagen würde, was ein Elefant ist.

    SAP-Systemingenieure erklären das erstbeste Tier zu einem Elefanten und passen Ihre Vorstellungen eines Elefanten an dieses Tier an.

    Microsoft kauft einen Elefanten aus dem Zoo in Seattle, kopiert ihn massenhaft, redet aller Welt ein, daß jeder einen bräuchte und daß dieser die ideale Ergänzung zu MS Office sei und exportiert 14 Mio. Stück nach Afrika.

    Windows NT Programmierer schiessen mit vollig ungeeigneten Gewehren in die vollig falsche Richtung und erklaren dann, daB es ein Fehler am Elefanten sein muB.

    Windows 95 Programmierer tun dasselbe, nur mit Pfeil und Bogen.



  • @PuppetMaster2k:
    Das ist doch von dieser Seite hier (also www.c-plusplus.net) kopiert... 🙄


Anmelden zum Antworten