Thread RDW #A - Raetsel der Woche Nummer A
(29 answers)
Opened by esskar at 2004-12-15 04:52
RDW #A - Raetsel der Woche Nummer A
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Regeln: * Bitte nicht vor Ablauf der ersten 120 Stunden ( = fünf Tage ) nach ~~~~~~~ Veroeffentlichung Hinweise (Spoiler) oder Loesungen veroeffent- lichen! * Wenn diese Zeit abgelaufen ist, werde ich einen Thread mit passen- dem Titel erstellen, in dem die Loesungen gepostet werden und dis- kutiert werden koennen. * Die Loesungen sollten nicht nur gepostet, sondern auch an mich ge- mailt werden, damit ich sie testen, "bewerten" und zusammenfassen kann. Die Adrese dafuer lautet: esskar <---AT---> perl <---MINUS---> community <---DOT---> de Im Betreff sollte 'RDW' und die Nummer des Raetsels stehen. Hilf- reich waere neben dem Quellcode der Username im Forum sowie Perl- und OS-Version, falls Du diese kennst. * Verstaendnisfragen duerfen in diesem Thread gestellt werden, aber Tipps und (Teil-) Loesungen sind hier unerwuenscht. * Ich werde die eingeschickten Programme im Netz zur Verfuegung stellen, so dass gerade lange Quellcodes nicht (komplett) gepostet werden muessen. * Zur Verwendung von Modulen: Ich moechte diese nicht generell aus- schliessen, aber wenn quasi die komplette Aufgabe durch die Ver- wendung eines Moduls ersetzt werden kann, ist dies vielleicht nicht der Sinn der Aufgabe gewesen. Aufgabe: Alle sichtbaren Rechtecke bestimmen ~~~~~~~~ (Dieser Vorschlag stammt von mir, Fragen bitte an mich richten =) Schreibe eine Funktion rdw_a die als Parameter ein Array unbestimmter Größe von Array-Referenzen nimmt. Jede Array-Referenz enthält vier Zahlen (unsigned integer/natürliche Zahlen), die für die Koordinaten eines Recteckes stehen. Nun soll die Funktion die Anzahl der sichtbaren Rechtecke zurückgeben, würde man sie zeichnen. Es werden keine doppelten Rechtecke in der Liste vorkommen! Alle Rechtecke werden eine Fläche haben! Beispiel1: Gegeben sind zwei Rechtecke: A(0,0, 5,5) und B(3,3, 7,7). Würde man diese Rechtecke in ein Koordinatensystem zeichnen, würden 3 Rechtecke sichtbar: einmal A, B und das durch die Überlappung von A mit B entstehende. Beispiel2: Aus A(1,3, 2,0) und B(0,2, 3,1) entstehen 11 Rechtecke! Hauptbewertungskriterium ist speed. Damit noch klar ist, wie der Funktionsaufruf von rdw_a auszusehen hat, hier nochmal obige Beispiele: rdw_a([0, 0, 5, 5], [3, 3, 7, 7]); rdw_a([1, 3, 2, 0], [0, 2, 3, 1]); Viel Spass. :) |