/ 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
random numbers...
Fra : Felix Nielsen


Dato : 15-02-04 18:26

Jeg er, eller rettere var, i den situation at jeg skulle bruge 10
tilfældige tal mellem 1 og 70, og var forsåvidt ikke noget
problem for mig, at få scriptet til at finde nogle tilfældige ved
hjælp af rand(), problemet kom da ville undgå at nogen af de 10
tal var ens.
Jeg har dog lavet en fungerende løsning på problemet, men der må
da være en lettere løsning...

<code>
<?

srand ((double) microtime() * 1000000);

$r1 = rand(1, 70);

do {
$r2 = rand(1, 70);
} while ($r2 == $r1);

do {
$r3 = rand(1, 70);
} while (($r3 == $r1) OR ($r3 == $r2));

do {
$r4 = rand(1, 70);
} while (($r4 == $r1) OR ($r4 == $r2) OR ($r4 == $r3));

do {
$r5 = rand(1, 70);
} while (($r5 == $r1) OR ($r5 == $r2) OR ($r5 == $r3) OR ($r5 ==
$r4));

do {
$r6 = rand(1, 70);
} while (($r6 == $r1) OR ($r6 == $r2) OR ($r6 == $r3) OR ($r6 ==
$r4) OR ($r6 == $r5));

do {
$r7 = rand(1, 70);
} while (($r7 == $r1) OR ($r7 == $r2) OR ($r7 == $r3) OR ($r7 ==
$r4) OR ($r7 == $r5) OR ($r7 == $r6));

do {
$r8 = rand(1, 70);
} while (($r8 == $r1) OR ($r8 == $r2) OR ($r8 == $r3) OR ($r8 ==
$r4) OR ($r8 == $r5) OR ($r8 == $r6) OR ($r8 == $r7));

do {
$r9 = rand(1, 70);
} while (($r9 == $r1) OR ($r9 == $r2) OR ($r9 == $r3) OR ($r9 ==
$r4) OR ($r9 == $r5) OR ($r9 == $r6) OR ($r9 == $r7) OR ($r9 ==
$r8));

do {
$r10 = rand(1, 70);
} while (($r10 == $r1) OR ($r10 == $r2) OR ($r10 == $r3) OR ($r10
== $r4) OR ($r10 == $r5) OR ($r10 == $r6) OR ($r10 == $r7) OR
($r10 == $r8) OR ($r10 == $r9));

?>
</code>

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Ukendt (15-02-2004)
Kommentar
Fra : Ukendt


Dato : 15-02-04 19:13

Hej Felix

Felix Nielsen wrote:
> Jeg er, eller rettere var, i den situation at jeg skulle bruge 10
> tilfældige tal mellem 1 og 70, og var forsåvidt ikke noget
> problem for mig, at få scriptet til at finde nogle tilfældige ved
> hjælp af rand(), problemet kom da ville undgå at nogen af de 10
> tal var ens.
> Jeg har dog lavet en fungerende løsning på problemet, men der må
> da være en lettere løsning...

Lav en for løkke, der kører fra 1 til 10, men
som dog kun tæller op, hvis tallet ikke er fundet
en gang før. Når et tal er genereret, så lig det
ind i et array, men test først om det allerede
findes i array'et (vist nok in_array(..) )

--
Mvh.
Martin Møller Bæk
www.yavi.dk


Felix Nielsen (18-02-2004)
Kommentar
Fra : Felix Nielsen


Dato : 18-02-04 03:35

Mange tak for svaret.
Jeg tror at det kan være til stor hjælp, men jeg havde nu aligevel
håbet at der fantes en eller anden smart funktion som man kunne
bruge...

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

M. Sveegaard (18-02-2004)
Kommentar
Fra : M. Sveegaard


Dato : 18-02-04 05:44

Hvad med:

<?
$tal = range(1,70);
shuffle($tal);
for ($i=0;$i<10;$i++) {
   echo $tal[$i]."<br />";
}
?>

--
Med venlig hilsen,
M. Sveegaard.

Felix Nielsen wrote:

> Mange tak for svaret.
> Jeg tror at det kan være til stor hjælp, men jeg havde nu aligevel
> håbet at der fantes en eller anden smart funktion som man kunne
> bruge...
>


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

Månedens bedste
Årets bedste
Sidste års bedste