© Elgin Grabe und fotolia.com, ril
Die Gewinner des Wettbewerbs zum Snapshot-Jubiläum
Frechheit siegt
von Michael Schilli
Erschienen im Linux-Magazin
2007/12
Manche Leser ließen sich in die Irre führen. Das zeigte die rege Forumsdiskussion zum Perl-Programmierwettbewerb anlässlich des zehnjährigen Bestehens der Snapshot-Kolumne im Linux-Magazin 10/2007. Inzwischen hat die Jury alle Einsendungen gesichtet und bewertet - jetzt stehen die Sieger fest.
Die Preisaufgabe im vorletzten Linux-Magazin fragte nach der bedingten Wahrscheinlichkeit, mit der ein Proband eine Tux-Tux-Karte in der Hand hält, wenn er bereits eine Karte mit Tux auf der Oberseite gezogen hat. Die richtige Lösung lautet 2:3, also etwa 66 Prozent. Warum? Wenn der Proband eine Karte mit dem Tux auf der Oberseite gewählt hat, dann muss es sich entweder um die Tux-Tux- oder die Tux-Gates-Karte handeln. Beide sind allerdings nicht gleich wahrscheinlich: Die Tux-Tux-Karte kommt zweimal so häufig dran wie die Tux-Bill-Karte, denn zöge der Proband den Bill, müsste er die Karte wieder zurück in den Topf legen und das Experiment wiederholen.
Reingelegt
Rund die Hälfte der Einsendungen liefert ein falsches Ergebnis. Die Wettbewerber berechneten entweder die Wahrscheinlichkeit für die Tux-Tux-Karte lediglich im ersten Versuch (33 Prozent) oder sie zählten gezogene Bill-Karten als gültige Experimente und landeten damit bei 50 Prozent.
Aber nicht nur das richtige Ergebnis zählt. Die Aufgabe verlangt auch Perl-Code, der das Experiment simuliert. Listing 1 zeigt eine mögliche Implementierung. Eine For-Schleife rattert durch 1000 Versuchsdurchgänge, eine Redo-Anweisung wiederholt das Experiment, falls Bill auftaucht. Bei einem Tux auf der Rückseite gibt es dagegen einen Punkt. Das Ergebnis ist das Verhältnis der Punkte zur Gesamtzahl der Versuchsdurchgänge.
01 #!/usr/bin/perl -w
02
03 use strict;
04
05 my @cards = (
06 ['tux', 'tux'],
07 ['tux', 'gates'],
08 ['gates', 'gates']
09 );
10
11 my $hits = 0;
12 my $total = 1000;
13
14 for(1..$total) {
15 my $draw = $cards[rand @cards];
16
17 my $front_idx = int rand 2;
18 my $back_idx = !$front_idx;
19
20 redo if $draw->[$front_idx] ne 'tux';
21
22 if($draw->[$back_idx] eq 'tux') {
23 $hits++;
24 }
25 }
26
27 print $hits, " of ", $total, "n";
|
Dreistigkeit
Die Jury bewertete die richtigen Einsendungen nach drei Kategorien: das kürzeste, das anschaulichste und das originellste Skript. In der Kategorie "Originell" gewinnt Thomas Güttler, dessen Einsendung die Redaktion als Erste erreichte und das richtige Ergebnis lieferte. Die bass erstaunte Jury fand aber bei näherem Hinsehen, dass Thomas die Frechheit besessen hat, ein Python-Skript einzusenden, das nur notdürftig in ein Perl-Skript verpackt ist. Es sucht einen installierten Python-Interpreter und übergibt ihm den Python-Code als String zur Ausführung. Für so viel Chuzpe verleiht die Jury volle zehn Punkte, die höchste Wertung - die Goldmedaille.
Hanspeter Schmid lieferte einen Vierzeiler, in dem er "Tuxlis" aus dem Wasser (H2O) entsteigen lässt und diese mit »unpack« wieder auseinanderklaubt, das reicht für Platz zwei. Patrick Falb nutzt einen regulären Ausdruck mit Look-Ahead, um eine Karte zu ziehen. Die Platzierungen von korrekt arbeitenden Skripten mit Origininalitätscharakter zeigt die Tabelle "Gewinner".
Beim kürzesten Skript war die Wertung relativ einfach, es zählte schlicht die Anzahl der Anschläge, das richtige Ergebnis natürlich vorausgesetzt. Dieses so genannte Perl-Golf trägt seinen Namen nach dem Golfsport, bei dem ja bekanntlich auch der Spieler mit den wenigsten Schlägen gewinnt.
| Whitepaper |
|
Usage Landscape Enterprise Open Source Data Integration
Die Nachfrage nach Datenintegrationslösungen für Unternehmen ist zunehmend gestiegen und vor allem das Interesse an Open Source Technologien wird immer größer. Doch wie und von wem werden Open Source Datenintegrationslösungen genutzt und welches Nutzungsverhalten lässt sich daraus ableiten? Das vorliegende White Paper präsentiert die Erfahrungswerte von über 1000 Open Source Nutzern und liefert fundierte Antworten auf diese Fragen.
Download PDF (Registrierung erforderlich)
|
|
Daten Migration - Eine Publikation von Bloor Research
Datenmigrationsprojekte überschreiten häufig das Budget, neigen zu Verzögerung und werden unter Umständen komplett abgebrochen. Bloor Research ist eines der weltweit führenden IT-Forschungs-, Analyse- und Beratungsunternehmen und wird in dem vorliegenden White Paper die wichtigsten Aspekte dieser Problematik näher beleuchten. Ferner werden praktische Empfehlungen für erfolgreiche Migrationsprojekte gegeben, die Sie auf Ihr nächstes Projekt übertragen können.
Download PDF (Registrierung erforderlich)
|
Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links"
nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedrucken Fassung entsprechen.
|