Mailinglisten-Archive |
----- Original Message ----- From: "Alexander Ott" <A.Ott_(at)_bau-igel.de> To: <php_(at)_php-center.de> Sent: Wednesday, August 30, 2000 6:12 PM Subject: Re: [php] Pseudozufallszahlen > Wilfried Henseler schrieb: > > ich moechte in PHP3(!) drei zufallszahlen aus dem bereich von 1-10 > > haben. Es darf aber keine doppelt vorkommen. > > > Einen Algorythmus zu finden, welcher 10 Zufallszahlen ausgibt > macht per definition keinen Sinn, da die zehn Zahlen ja immer in > der gleichen (wenn auch durcheinander) Reihenfolge wiedergegeben > werden würden. Nicht 10 Zufallszahlen, sondern 3 zufallszahlen zwischen 1 und 10, die aber nicht doppelt sein duerfen. Also 1,2,3 oder 5,1,7 oder 3,9,8 aber nicht 1,1,5... ;) In meine fall waere es sogar wuenschenswert, dass das nicht wirklich ein zufall ist. Also der sinn der sache ist genauer der: In einem shop sollen auf der eingangsseite 3 top-angebote ausgegeben werden. Es koennen aber vom betreiber viel mehr als nur 3 angebote dafuer vorgemerkt werden. Darum sollen halt immer per zufall 3 verschiedene produkte aus den moeglichen angezeigt werden. Diese einfach mit einer wassermarke nach der reihe aus zu geben waere auch nicht so schoen, weil in der datenbank hintereinander stehende produkte zumeist sehr aehnlich sind und es mir lieber waere i.d.r. eine "bunte mischung" zu haben. > > Imho ging diese formel doch mathematisch so, dass die schleife > > genau 64000 mal durchlaufen wurde und kein array gebraucht wurde > > um sich zu merken welche pixel schon dran waren. Imho musste doch > > nur der letzte pixel uebergeben werden. > > > Es gibt eine Lösung welche 10.000 Zufallszahlen (0,0000 bis 0,9999) erzeugt: > > z(n+1) = Nachkommateil (z(n) * 1117 + 0,1117) > > In den von Dir erwähnten "guten alten Zeiten" kannte ich da noch mehrere > davon, allerdings sind die in den letzten 20 Jahren aus meinem Gedächtnis > verschwunden. Jo, da gibt es auch diese form mit: X_n=(a *X_(n-1)+b) mod m Aber ich erinnere mich einfach nicht mehr daran, wie das genau funktionierte um eine schoene "mischung" bei n=3 zufallszahlen aus 1 bis Y. Lang ists halt her :( Und im web finde ich dazu leider nur hoch-mathematische ansaetze um dann DOCH zufallszahlen zu erzeugen - aber, wie gesagt, genau darum geht es mir ja eben nicht - weil keine doppelt sein darf. > Aber wahrscheinlich outen wir uns hier beide mit diesem Thread als Opas ;) Jo, naja, mein problem hab ich halt jetzt auf "die komplizierte" art geloest - war ja nicht schwer bei nur 3 zahlen - aber aergern tut es mich doch, dass ich weiss es ginge auch eleganter, aber nimmer wie ;( -- Wilfried Henseler snoopmedia GmbH Schloßstr. 4, 53115 Bonn, Tel +49/228/2499683 http://www.snoopmedia.com
php::bar PHP Wiki - Listenarchive