Re: Sortierung per Zufall mit "sort=?" jetzt möglich... ;-) - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 
    Beitrag von Christoph Bergmann (8110 Beiträge) am Montag, 12.November.2001, 18:43.
    Re: Sortierung per Zufall mit "sort=?" jetzt möglich... ;-)

      Ah, der Winkiller - da erscheint er plötzlich aus dem Nichts ;-)

      Nein, is sogar schneller als z.B. eine Sortierung nach einem Feld.

      Tief drinnen irgendwo in den Weiten des Programms steht in etwa folgendes:

      @daten=sort { int(rand(2))*2-1 } @daten;
      

      So einfach kanns gehen ;-)


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Christoph Bergmann (8110 Beiträge) am Montag, 12.November.2001, 11:02.
    Sortierung per Zufall mit "sort=?" jetzt möglich... ;-)

      Steht ja eigentlich schon alles im Titel ;-)

      <do action=all sort=?>
      

      ruft die Einträge per Zufall ab. Danke an Thomas für die Idee mit dem "sort=?" - so einfach muss es sein ;-)

     Antworten

    Beitrag von Winkiller (175 Beiträge) am Montag, 12.November.2001, 18:27.
    Re: Sortierung per Zufall mit "sort=?" jetzt möglich... ;-)

      Ja, und so toll das erscheint, kannst du mir mal kurz erläutern wie du das realisiert hast?

      Wie immer bin ich neugierig!

      Ist diese Funktion nicht auch etwas langsam?

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Montag, 12.November.2001, 18:43.
    Re: Sortierung per Zufall mit "sort=?" jetzt möglich... ;-)

      Ah, der Winkiller - da erscheint er plötzlich aus dem Nichts ;-)

      Nein, is sogar schneller als z.B. eine Sortierung nach einem Feld.

      Tief drinnen irgendwo in den Weiten des Programms steht in etwa folgendes:

      @daten=sort { int(rand(2))*2-1 } @daten;
      

      So einfach kanns gehen ;-)

     Antworten

    Beitrag von Sander (8133 Beiträge) am Montag, 12.November.2001, 18:43.
    Re: Sortierung per Zufall mit "sort=?" jetzt möglich... ;-)

      jo, das würde mich auch interessieren - vor allem: was sagst du zu meinem Code?

      WK: welcome back :-)

      Sander

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Montag, 12.November.2001, 19:05.
    Re: Sortierung per Zufall mit "sort=?" jetzt möglich... ;-)

      A bisserl lang ;-))

      Aber für das

      %{Ds.$x++}=%_loop;

      bekommst Du einen Extrapunkt das is schon tricky gemacht ;-)

      Ich bin mir nich ganz sicher, obs nich zu umständlich is (da wird schon ne Menge rumgeschoben und kopiert), oder ob das nich anders geht, weil die normale-Version die nötigen Arrays&Hashes nich zur Verfügung stellt, so wie die beta - dort könnte man z.B. einfach mit

      get "Id==*", "db";
      $r=rand($_amount);
      out $db{Feldname}[$r];
      

      auf jeden beliebigen Datensatz zugreifen. Oder geht das hier auch?

      Ansonsten kann man aber mit "get_next" auf jeden beliebigen Datensatz zugreifen, wahrscheinlich weiss das keiner ;-)))

      get "Id==*", "datenbank", "ergebnis";
      get_next "ergebnis", 3;
      

      holt also den 4. datensatz der ergebnisliste von "datenbank" ;-)

      Ich wette, nu fällt Dir sofort eine einfachere Lösung ein ;-)) Ich versuchs auch mal grade: 1. Entwurf:

      do {
      $r=rand($_amount) unless $schonda{$r}++==0;
      get_next "db", $r;
      out <<EOF
      
      ...
      EOF
      } while(keys(%schonda)<$_amount);
      

      natürlich nich getestet ;-) is aber eine SCHLECHTE umsetzung, weil die "unless" schleife natürlich immer länger braucht, weil ja immer weniger datensätze noch nich dran waren. bei z.b. 100 einträgen kann das sogar richtig, richtig lange dauern... also anders: ;-)

      do {
      $r=rand($_amount); $rp=(1,3,7,11,13)[rand(5)];
      $r=($r+$rp)%$_amount unless $schonda{$r}++==0;
      get_next "db", $r;
      out <<EOF
      
      ...
      EOF
      } while(keys(%schonda)<$_amount);
      

      sieht nett aus und is laufzeittechnisch besser, 100% zufällig isses dann nich, obwohls durch das $rp (primzahlen) einigermassen abgefangen wurde. für die meisten einsatzfälle sollte das völlig reichen. am besten wärs wenn $rp tatsächlich eine beliebige primzahl zwischen 1 und $_amount wäre (ausser 2), weiss ich aber auf die schnelle nich wie man das hinkriegt ;-))

      naja, vielleicht hat ja jemand ne bessere idee... ;-)

     Antworten

    Beitrag von Sander (8133 Beiträge) am Montag, 12.November.2001, 19:25.
    Re: Sortierung per Zufall mit "sort=?" jetzt möglich... ;-)

      ??? Was steht da ???
      :-)))

      Sander

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Dienstag, 13.November.2001, 13:12.
    Re: Sortierung per Zufall mit "sort=?" jetzt möglich... ;-)

      wo genau? ;-)

     Antworten

    Beitrag von Beetle (178 Beiträge) am Donnerstag, 15.November.2001, 07:59. WWW: vwwa.de
    @ CB Re: Sortierung per Zufall mit "sort=?" jetzt möglich... ;-)

      <do action=all sort=?>
       
      

      ruft die Einträge per Zufall ab. Danke an Thomas für die Idee mit dem "sort=?" - so einfach muss es sein ;-)
      ----------------
      Hallo Christoph,

      belohnst Du mich für den Einfall auch mit einem Einbau in der Bezahlversion ?

      Aber bitte nur das, sonst... :)

      Dort brauche ich aber auch:

      <loop db=news aktiv==1 sort=?>
                            <a href=$link><b>$titel</b></a><br>
                            $text<br><br>
                          </loop>
      

      ( Funktioniert ja auch in baseportal.de - getestet )

      Danke

      Thomas Beetle

     Antworten


     
 Liste der Einträge von 54751 bis 54901:Einklappen Zur Eingabe 
Neueste Einträge << 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | Neuere Einträge < Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.06s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!