/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
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



Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408946
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste