Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117

    Funzione random che dia sempre 3 numeri diversi!

    Ciao a tutti! Ho necessità di utilizzare la funzione rand() in modo che mi dia una serie di 3 numeri che siano SEMPRE diversi tra loro!

    Per fare un test ho provato a buttar giù sto codice:

    Codice PHP:
    $i1=rand(0,3);
    echo 
    $i1 .'<br />';

    do{
          
    $i2=rand(0,3);    
          }while(
    $i2==$i1);      
    echo 
    $i2 .'<br />';

    do{
          
    $i3=rand(0,3);      
          }while(
    $i3==$i1 || $i3==$i2);
    echo 
    $i3 .'<br />'
    che ovviamente non funge (i numeri a volte son uguali tra loro)

    Qualcuno ha qualche suggerimento?
    Ultima modifica di Veronica80; 21-08-2014 a 13:28

  2. #2
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    ma i numeri random devono essere compresi tra 0 e 3?

  3. #3
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117
    Come non detto c'era un errore nel codice! Avevo messo $i invece che $i1 all'inizio! Ora funziona (almeno pare )

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    17
    Quote Originariamente inviata da Veronica80 Visualizza il messaggio
    Ciao a tutti! Ho necessità di utilizzare la funzione rand() in modo che mi dia una serie di 3 numeri che siano SEMPRE diversi tra loro!

    Per fare un test ho provato a buttar giù sto codice:

    Codice PHP:
    $i1=rand(0,3);
    echo 
    $i1 .'<br />';

    do{
          
    $i2=rand(0,3);    
          }while(
    $i2==$i1);      
    echo 
    $i2 .'<br />';

    do{
          
    $i3=rand(0,3);      
          }while(
    $i3==$i1 || $i3==$i2);
    echo 
    $i3 .'<br />'
    che ovviamente non funge (i numeri a volte son uguali tra loro)

    Qualcuno ha qualche suggerimento?
    Ok se funziona, ma quei cicli do-while potenzialmente possono durare all'infinito.
    Ti consiglio qualcosa di questo genere:

    Codice PHP:

    $random_numbers 
    range(13);
    shuffle($random_numbers);
    foreach (
    $random_number as $random) echo $random "<br />"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.