|
| rand() Fra : KASPER |
Dato : 10-03-01 11:04 |
|
Jeg skal bruge 2 "tilfældige" tal mellem 1 og 6 (inklusive). Tallene
skal være forskellige.
Jeg har fiflet følgende kode sammen, men er det den bedste måde til
dette eller er der noget i manualen jeg har overset?
<?php
srand(time());
while($number1 == $number2){
$number1 = (rand()%6)+1;
$number2 = (rand()%6)+1;
}
print("$number1<br>\n");
print("$number2<br>\n");
?>
--
KASPER
| |
Jes Søndergaard (10-03-2001)
| Kommentar Fra : Jes Søndergaard |
Dato : 10-03-01 13:21 |
|
"KASPER" <kd42@hotmail.com> skrev bl.a.:
> Jeg skal bruge 2 "tilfældige" tal mellem 1 og 6 (inklusive). Tallene
> skal være forskellige.
Følgende løsning giver samme resultat:
$randval1 = rand(1, 6);
$randval2 = rand(1, 6);
print "$randval1<BR>$randval2";
Og det ser ud til at der altid returneres 2 uafhængige værdier selvom
srand() undlades.
Mvh.
Jes Søndergaard
| |
KASPER (10-03-2001)
| Kommentar Fra : KASPER |
Dato : 10-03-01 15:25 |
|
"Jes Søndergaard" <jessonde@worldonline.dk> wrote in message
news:p_oq6.3092$lk1.106497@twister.sunsite.dk...
> "KASPER" <kd42@hotmail.com> skrev bl.a.:
> > Jeg skal bruge 2 "tilfældige" tal mellem 1 og 6 (inklusive). Tallene
> > skal være forskellige.
>
> Følgende løsning giver samme resultat:
>
> $randval1 = rand(1, 6);
> $randval2 = rand(1, 6);
> print "$randval1<BR>$randval2";
>
Nej, for $randval1 og $randval2 kan i den løsning godt få samme værdi.
> Og det ser ud til at der altid returneres 2 uafhængige værdier selvom
> srand() undlades.
Hmm, rand() må bruge et-eller-andet pr. default, hvis man ikke selv gør
noget(?)
--
KASPER
| |
Ghashûl (10-03-2001)
| Kommentar Fra : Ghashûl |
Dato : 10-03-01 18:58 |
|
On Sat, 10 Mar 2001 15:25:26 +0100, "KASPER" <kd42@hotmail.com> wrote:
>Hmm, rand() må bruge et-eller-andet pr. default, hvis man ikke selv gør
>noget(?)
Tror du ikke automatisk den bruger tiden i sekunder siden år x? Altså
Unix style.
--
Regards Sir Ghashûl, Knight of The alt.Roundtable <><
ICQ: 7two23six29
E-mail: stefan at bruhn dot to
URL: http://ghashul.dk
| |
Jes Søndergaard (10-03-2001)
| Kommentar Fra : Jes Søndergaard |
Dato : 10-03-01 20:09 |
|
"KASPER" <kd42@hotmail.com> skrev bl.a.
> "Jes Søndergaard" <jessonde@worldonline.dk> wrote in message
> news:p_oq6.3092$lk1.106497@twister.sunsite.dk...
> > Følgende løsning giver samme resultat:
> >
> > $randval1 = rand(1, 6);
> > $randval2 = rand(1, 6);
> > print "$randval1<BR>$randval2";
>
> Nej, for $randval1 og $randval2 kan i den løsning godt få samme værdi.
Ok, troede at du ville have et jeg-kaster-2-terninger-script, som altså godt
kunne returnere 2 af samme værdier.
> Hmm, rand() må bruge et-eller-andet pr. default, hvis man ikke selv gør
> noget(?)
Ja, undrer også mig.
Mvh.
Jes Søndergaard
| |
KASPER (11-03-2001)
| Kommentar Fra : KASPER |
Dato : 11-03-01 13:10 |
|
"Jes Søndergaard" <jessonde@worldonline.dk> wrote in message
news:SYuq6.5366$lk1.135466@twister.sunsite.dk...
[SNIP]
> Ok, troede at du ville have et jeg-kaster-2-terninger-script, som
altså godt
> kunne returnere 2 af samme værdier.
>
OK, jeg kan godt se, at mit interval kunne antyde dette :) Men det er
til et noget bannersjov, og der er ingen grund til at vise to ens
bannere på samme side.
> > Hmm, rand() må bruge et-eller-andet pr. default, hvis man ikke selv
gør
> > noget(?)
>
> Ja, undrer også mig.
Men man bør nok alligevel sætte
srand((double) microtime() * 1000000);
(jf. manualen*)
Iøvrigt et lille guldkorn fra manualen*:
"Random numbers should not be generated by a method choosen at random"
-Donald Knuth
*) http://www.php.net/manual/en/function.srand.php
--
KASPER
| |
|
|