Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
(Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI...

Frage wegen mt_rand

Diskussion: Frage wegen mt_rand im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Anzeige also ich hab nun mit PHP angefangen und ne frage wegen dem Zufallsgeneraor: PHP-Code: <? for ( $i  =  1 ...

Antwort
Alt 27.10.05, 02:15   #1 (permalink)
 
Registriert seit: 07.06.05
Hashishin Leistung: Facit NTK
Likes: 0
Frage wegen mt_rand

Anzeige

also ich hab nun mit PHP angefangen und ne frage wegen dem Zufallsgeneraor:

PHP-Code:
<?
for ($i 1$i <= 2$i++) {
   
$zufallszahl mt_rand(1501);
   echo 
$zufallszahl;
   }
?>
So, nun müsste ich doch zufallszahlen zwischen 1 und 500 bekommen....wie mir scheint fragt mt_rand aber nichtmal nach min und max, da ich als min_wert auch 50 und max_wert auch 12 eingeben kann (LOL :rolleyes: )

wo liegt denn mein fehler?

danke im vorraus, gruß Hash =)

?dit:

scheinbar werden die Zahlen hinten doch gelesen, aber falsch interpretiert!

wenn ich z.B. 5, 2 eingebe, bekomme ich nur die Zahlen 44, 45 und 55...

also ich bin ratlos X(
Hashishin ist offline   Mit Zitat antworten
Alt 27.10.05, 07:15   #2 (permalink)
 
Registriert seit: 01.10.05
Stormlord Leistung: Facit NTK
Likes: 0
Standard

doch, eigentlich beachtet das schon die min und max-werte, (wenn man halt bei min mehr hat als vorne ist die reaktion sehr unterschiedlich ^^")
aber du hast vergessen vor jedem aufruf von mt_rand
mt_srand zu benutzen. kann sonst passieren, dass mt_rand immer die gleiche zahl ausspuckt:

PHP-Code:
<?
for ($i 1$i <= 2$i++) {
   
mt_srand((double)microtime()*1000000);
   
$zufallszahl mt_rand(1501);
   echo 
$zufallszahl."<br />";
   }
?>
also bei mir klappt es einwandfrei. (eigentlich versteh ich dein problem nicht so richtig ^^")
Stormlord ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 27.10.05, 07:27   #3 (permalink)
 
Registriert seit: 19.10.05
NovitA Leistung: Facit NTK
NovitA eine Nachricht über ICQ schicken
Likes: 0
Standard

Zitat:
Original von Stormlord
PHP-Code:
<?
mt_srand
((double)microtime()*1000000);
for (
$i 1$i <= 2$i++) {
   
$zufallszahl mt_rand(1501);
   echo 
$zufallszahl."<br />";
   }
?>
einmal reicht auch
ber der code läuft doch.
und soweit ich mich erinnerre nimmt mt_rand "normalerweise" den ersten wert als min und den 2. als max. wenn aber der 1. größer ist, wird automatisch umgestellt und der 2. als min-Wert benutzt. Oder lieg ich da komplett daneben?
NovitA ist offline   Mit Zitat antworten
Alt 27.10.05, 10:28   #4 (permalink)
Themenstarter
 
Registriert seit: 07.06.05
Hashishin Leistung: Facit NTK
Likes: 0
Standard

hmm, erstma danke für die antworten stormlord und NovitA

PHP-Code:
<?
mt_srand
((double)microtime()*1000000);
for (
$i 1$i <= 2$i++) {
   
$zufallszahl mt_rand(150);
   echo 
$zufallszahl;
   }
?>
und
PHP-Code:
<?
for ($i 1$i <= 2$i++) {
  
mt_srand((double)microtime()*1000000); 
  
$zufallszahl mt_rand(150);
   echo 
$zufallszahl;
   }
?>
habbe beides versucht, aber das problem bleibt dasselbe....!

ich bekomme z.B. 4435 generiert...
das mt_srand() ist eigentlich auch nicht so wichtig, da ich nur eine zufallszahl will

ich versuchs mal noch mit normal rand()....melde mich dann nohma

?dit:
Hab nochwas rausgekriegt:

wenn ich z.B. $zufallszahl = mt_rand(1, 2); mache, kommen nur die zahhlen 11, 12, 21, 22...anscheinend müssen die zahlen 1 und/oder 2 enthalten sein und keine andere....*ratlos umblick*

?dit 2.

so nu hab ichs geschafft!
es lag an der schleife, damit hat er total verrückt gespielt

nur zum abschluss mein code nun:

PHP-Code:
$zufallszahl rand(1,50); 
      echo 
$zufallszahl

srand brauch ich ja nicht weil ich nur eine zufallszahl will


Gruß Hash
Hashishin ist offline   Mit Zitat antworten
Alt 27.10.05, 13:02   #5 (permalink)
Member of Honour
 
Benutzerbild von ivegotmail
 
Registriert seit: 28.05.03
ivegotmail Leistung: Z3
Likes: 1
Standard

Zitat:
Original von Hashishin
es lag an der schleife, damit hat er total verrückt gespielt
die hat nicht verrückt gespielt sondern genau das gemacht was du programmiert hast. nämlich dass sie zweimal ausgeführt wird und somit 2 zufallszahlen hintereinander ausgegeben wurden.

ich frag mich übrigens warum du die schleife überhaupt benutzt hast, wenn du nur eine zufallszahl wolltest?!
__________________
http://livehabo.hackerboard.de | http://livebb.sourceforge.net
ivegotmail ist offline   Mit Zitat antworten
Alt 27.10.05, 13:42   #6 (permalink)
 
Registriert seit: 01.10.05
Stormlord Leistung: Facit NTK
Likes: 0
Standard

Zitat:
Original von NovitAeinmal reicht auch
ich wollte damit zeigen, dass man das <br /> nicht vergessen sollte
vielleicht hät ichs erwähnen sollen -____-" sry
Stormlord ist offline   Mit Zitat antworten
Alt 27.10.05, 14:51   #7 (permalink)
Themenstarter
 
Registriert seit: 07.06.05
Hashishin Leistung: Facit NTK
Likes: 0
Standard

ivegod stimmt jetzt wo dus sagst ich hab mich schon gewundert warum immer 3232 oder 4848 etc. ausgegegeb wurden, danke damit ich die erklärung hab

schleife hab ich ja schließlich rausgenommen, aber ich dachte mir kann nich schaden wenn sie in einer drin steht^^kA gestern als ich angefangen hab wars spät

naja, nu gehts ja, werd mich aber sicherlich bald nochmal melden...will nu ein kleines spiel proggn wo man ne zufallszahl eraten muss, aber vll schaff ichs auch allein

Gruß Hash
Hashishin ist offline   Mit Zitat antworten
Alt 27.10.05, 17:41   #8 (permalink)
 
Registriert seit: 19.10.05
NovitA Leistung: Facit NTK
NovitA eine Nachricht über ICQ schicken
Likes: 0
Standard

Zitat:
Original von Stormlord
Zitat:
Original von NovitAeinmal reicht auch
ich wollte damit zeigen, dass man das <br /> nicht vergessen sollte
vielleicht hät ichs erwähnen sollen -____-" sry
ich habe mich garnicht aufs <br /> bezogen, sondern auf das mt_srand((), welches ja in der schleife stand, und dadurch bei jeder zufallszahl alles komplett neu initialisiert worden wäre (ok, bei zwei zahlen nicht die welt, aber falls es mal mehr werden sollten.... du verstehst^^)
NovitA ist offline   Mit Zitat antworten
Alt 27.10.05, 21:13   #9 (permalink)
Moderator
 
Benutzerbild von Elderan
 
Registriert seit: 30.03.04
Elderan Leistung: 8086
Likes: 14
Standard

Hallo,
schau dir die Schleife noch mal an:
PHP-Code:
<?php
for ($i 1$i <= 2$i++) { 
  
$zufallszahl mt_rand(150);
   echo 
$zufallszahl;
   }
?>
Hier wird zuerst eine Zahl zwischen 1 und 50 generiert, und ausgegeben.
Danach wird noch eine generiert, und ausgegeben.
Allerdings steht dort _______keine_____ Zeichentrenner.

Sprich 4534 wäre eine: 45 und 34.

Einfach bei echo ein weiteres Zeicheneinfügen z.B.
echo "$zufallszahl ";

Dann erhälst: 45 34
Elderan ist offline   Mit Zitat antworten
Alt 28.10.05, 00:37   #10 (permalink)
Themenstarter
 
Registriert seit: 07.06.05
Hashishin Leistung: Facit NTK
Likes: 0
Standard

jup hast recht

ok, zumindest weiß ich nun worans lag...

also nochmal danke an alle
Hashishin ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Web, Network & Multimedia Palace » (Web-) Design und webbasierte Sprachen » Frage wegen mt_rand
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Frage wegen PHP sichtbarkeit Huggy Webmaster-Security 9 26.03.07 08:59
Frage wegen Netzteil und Speicher Tolli Kaufberatung 3 24.07.06 21:15
frage wegen board Sr01 Off topic-Zone 7 10.01.04 10:46
Frage wegen AOL POP Server !! HILFE !!! nostradamus Internet Allgemein 3 24.11.03 18:02


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61