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 ;-)
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... ;-)
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... ;-)
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... ;-)
Antworten