PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PHP Frage(n): Zufallszahlen



pazzi
18.06.2004, 22:37
Ich versuche gerade ein von mir geschriebenes QBasic Programm in PHP "nachzubauen".
Dazu hätte ich erstmal eine generäle Frage.
In QBasic war es möglich bei den Zufallszahlen die Obergrenze durch eine Variable anzugeben:
zufall=INT(RND*Obergrenze)+1
Zumindestens hab ich es auf diese Weise in der Schule gelernt ^^
Nun wollte ich fragen ob, und wenn ja wie, ich dies bei PHP bewerkstelligen kann.

Aber jetzt noch zu meinem richtigem Problem. Da ich bei meinen ersten Versuchen mit der variablen Obergrenze nur Fehlermeldungen bekommen hab, hab ich es etwas anders probiert.

<?
srand(microtime()*1000000);
$zufall = rand(1,100);
?>
<?
$angriff_end = $zufall*$angriff1
echo $zufall
echo $angriff_end
?>
Allerdings erhalte ich jetzt immer als Fehlermeldung:
Warning: rand() expects parameter 2 to be long, string given in [...] on line 10
Da der Code bei Zeile 8 anfängt ist die Zufallszahl aber noch in dem Teil, den ich 1 zu 1 von Schattenbaum hab ?_?

wrtlprnft
19.06.2004, 00:36
rand() bei selfphp (http://www.selfphp.de/funktionsreferenz/mathematische_funktionen/rand.php)

Ansonsten tät ich dir mal empfehlen die letzten drei Codezeilen mit einem Strichpunkt aufhören zu lassen, dann klappt der Code bei mir jedenfalls.

dread
19.06.2004, 02:22
<?
srand(microtime()*1000000);
$zufall = rand(1,100);
?>
<?
$angriff_end = $zufall*$angriff1;
echo $zufall;
echo $angriff_end;
?>

So funktioniert der Quellcode, allerdings sehe ich so keinen Sinn in deiner Variablen $angriff1.

So gibt er die Zufallszahlen zwischen 1 und 100 aus.


<?
srand(microtime()*1000000);
$zufall = rand(1,100);
echo $zufall;
?>

Hier auch nochmal die Links zur PHP.net Funktionsreferenz.

rand() (http://de.php.net/manual/de/function.rand.php) und srand() (http://de.php.net/manual/de/function.srand.php).

wrtlprnft
19.06.2004, 02:27
Sagte ich doch...

Wahrscheinlich kommt das Ganze aus einem größeren Script, in dem $angriff1 woanders definiert wird.

(OT:)Öhm, ich hab das Script mal ohne srand() ausprobiert, es kam trotzdem immer was anderes raus. Kann es sein, dass die Initialisierung von der rand()-Funktion zwischen den Aufrufen gespeichert wird?

pazzi
19.06.2004, 02:28
Original geschrieben von dreadlord
So funktioniert der Quellcode, allerdings sehe ich so keinen Sinn in deiner Variablen $angriff1. $angriff1 wurde zuvor vom Benutzer definiert und sollte ursprünglich als Obergrenze für die Zufallszahl dienen, allerdings wusste ich, als ich den obigen Quelltext geschrieben hab, noch nicht genau wie man das alles machen muss. Inzwischen blick ich aber einigermassen durch und hab das auch alles gebacken bekommen.

Achja, danke für die Hilfe ^^