php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
etwas komplexere random


 
Metallica
31-07-2003, 10:27 
 
hi leuts,

ich benötige eine funktion die alle 24 stunden drei zufällige werte in einem bestimmten intervall erzeugt.

Bsp:
Tag 1:
zufallswert1 = 89 (wert muss zw. 50 und 200 liegen)
zufallswert2 = 64
zufallswert3 = 121
Tag 2:
zufallswert1 = 119 (neuer wert darf nur max. um 20-100 einheiten höher sein)
zufallswert2 = 133
zufallswert3 = 189
usw.

=> das ganze steigert sich solange bis ein zufallswert 2950 erreicht. dann beginnt's wieder von anfang. sprich: es wird wieder ein wert zw. 50 und 200 erzeugt.......
aber die werte agieren unabhängig voneinander. soll heißen: wenn zB wert1 2950 erreicht hat, beginnt's wieder von vorne. wenn aber wert2 und wert3 noch nicht 2950 erreicht haben, dann machen die - unabhängig von wert1 - weiter bis sie ebenfalls die 2950 erreichen.

meine bisherige überlegung.:
die random-werte und den aktuellen tag muss man in der DB-tabelle loggen damit php vergleichen kann. (in etwa: teste den tag mit dem aktuellen tag wenn ungleich berechne die werte)
$date = date("Y-m-d");
$time = date("H:i:s");

könnt ihr mir da weiterhelfen - irgendwie komm ich zu keinen ansatz?!?!

 
Titus
31-07-2003, 11:16 
 
Du musst dir nur den Wert vom Vortag merken.function get_zufallswert($alt)
if ($alt)
{
$neu = $alt + rand(20, 100);
if ($neu < 2950)
return $neu;
}
return rand(50, 200);
}Die Funktion rufst du einfach 3x auf (am besten in einer Schleife; für jeden Zufallswert 1x jeweils mit dem alten Wert als Parameter), dann hast du alle neuen Werte.

 
wahsaga
31-07-2003, 12:34 
 
@metallica: wofür das crossposting?

@mods: führt mal bitte einer mit diesem thread (http://www.php-resource.de/forum/showthread.php?s=&threadid=23498) zusammen?

 
Metallica
31-07-2003, 13:27 
 
@wahsaga:
ich habe doppelt gepostet weil es jetzt keine flash(actionscript)-angelegenheit mehr ist, sondern ein php-script werden soll.
=> lösche bitte meinen flash-thread!!!

@Titus
danke, Titus. Dein Ansatz ist mir in etwa klar.

zwischenzeitlich hat sich ein etwas anderes ziel ergeben und damit wir nicht aneinander vorbeiposten, illustriere ich dir mal kurz was ich erreichen will:
Auf meiner site gibt's drei (in ein paar wochen sind's dann vier!) verschiedene kategorien ($kat1_klasse, $kat2_urlaub, $kat3_abi => diese vars repräsentieren nur die bezeichnung jeder kategorie). Per Random will ich für jede Kat. einen Wert generieren der für die Clicks steht.
Die Ausgabe auf der Site soll so aussehen:
"Topkategorie diese Woche: $kat1_klasse mit $wert_kat1 Clicks"
Soll heißen: auch die kategorie soll per random ausgewählt werden.

Und jetzt wird's richtig kompliziert ;-)):
Die kategorie soll ein einem zufallszeitraum von 8-20 tagen angezeigt werden. D.h. am anfang sollten per random die tage ermittelt werden wie lange die kategorie auf der site angezeigt wird. ABER: der $wert (also die clicks) soll sich immer erhöhen (= gepostetes script von dir); allerdings nur alle 24 std.

Ich hoffe es war einigermaßen verständlich. Is ja nicht so einfach die sache!?!?

 
wahsaga
31-07-2003, 14:22 
 
Original geschrieben von Metallica
Per Random will ich für jede Kat. einen Wert generieren der für die Clicks steht.
Die Ausgabe auf der Site soll so aussehen:
"Topkategorie diese Woche: $kat1_klasse mit $wert_kat1 Clicks"
Soll heißen: auch die kategorie soll per random ausgewählt werden.
verstehe ich das richtig, du willst den besuchern vorgaukeln, die "top-kategorie" wäre die am meisten besuchte, in wirklich ist es aber nur eine von dir zufällig ausgewählte ...?

bisschen krank find' ich das schon.

 
Metallica
31-07-2003, 16:23 
 
sorry, hab ich vergessen dazu zu sagen:
es handelt sich um eine theoretische illustration wie sowas gehen könnte. ich brauch das für 'ne präsentation auf unserer Sternwarte (http://www.noe-sternwarte.at/)
;)

 
muecke0815
31-07-2003, 18:30 
 
wird dem user also immer nur eine kat angezeigt? was ist wenn die 8-20 tage um sind? kann dann eine kat erscheinen die in den klicks niedriger liegt als die vorherige?


Alle Zeitangaben in WEZ +2. Es ist jetzt 04:19 Uhr.