Thread RDW #A - Raetsel der Woche Nummer A (29 answers)
Opened by esskar at 2004-12-15 04:52

esskar
 2004-12-15 04:52
#49978 #49978
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
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. :)

View full thread RDW #A - Raetsel der Woche Nummer A