Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Numeri da 1 a 9: tutte le possibili combinazioni senza ripetizioni

    Salve. Vorrei creare uno script che mi permetta di generare tutte le possibili combinazioni dei numeri da 1 a 9 (compresi) senza ripetere i numeri stessi (in partica numeri come 158519895 non devono comparire ma solo numeri nei quali ogni numero compaia una volta come 123456789 o 593468721). Qualcuno ha un'idea di come si possa fare?
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  2. #2
    Ho una routine gia' fatta... vedi se ti va bene.
    codice:
    <?php 
    mt_srand((double)microtime()*1000000); 
    for ($i=1; $i<=9; $i++) $cnt[$i]=0;
    for($i=1; $i<=9; $i++)
    { 
    do 
    { 
    $z=mt_rand()%9+1;
    } 
    while ($cnt[$z]>0); 
    $cnt[$z]=$cnt[$z]+1; 
    $num[$i]=$z; 
    } 
    for ($i=1;$i<=9; $i++){
    echo $num[$i] . " "; 
    } 
    ?>

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Si, va bene. Ora però dovrei fare in modo che mi trovi tutte le possibili combinazioni. Hai qualche idea di come possa modificare lo script?
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  4. #4
    Allora. Io ho pensato di fare così:

    calcolo quante possibili combinazioni ci sono (e questo non lo so fare. Dovrebbe essere qualcosa tipo 9^9 ??? )

    A questo punto faccio un ciclo for che continua fino a quando il contatore è inferiore al numero totale delle combinazioni possibili.

    Ad ogni generazione di numero Controllo se è già presente nel DB. Se non è presente lo memorizzo, se invece è presente lascio il contatore al numero attuale (praticamente non lo faccio avanzare) e ricomincio il ciclo.

    Allora? Che ne dici?
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  5. #5
    Dico niente.... Lo script ti genera 9 numeri in ordine casuale, tutti i numeri da uno a nove. Cos'altro dovresti fare? verificare l'univocita'. Se cerchi una chiave usa una funzione apposita.

    gm ne ha una disponibile (se ancora c'e') nel suo sito. genera una chiave random.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  6. #6
    No, io devo memorizzare tutte le possibili cominazioni in un DB. Quindi alla fine i record presenti saranno tanti quante sono le possibili combinazioni.
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  7. #7
    Originariamente inviato da mircov
    No, io devo memorizzare tutte le possibili cominazioni in un DB. Quindi alla fine i record presenti saranno tanti quante sono le possibili combinazioni.
    VVoVe:

    387.420.489

    TRECENTOOTTANTASETTEMILIONI
    QUATTROCENTOVENTIMILA
    QUATTROCENTOOTTANTANOVE RECORD????

    mi sa che hai mangiato pesante stamane. Fai un ciclo for partendo da 111111111 fino a 999999999 incrementando di 1 ... a che ti serve una funzione ??!!??

    manco fossero vecchie lire.... auguri.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  8. #8
    Veramente non ho mangiato perchè ho una colica! Cmq grazie per l'aiuto! Ciao!
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  9. #9
    E comunque mica sono 387.420.489?
    Nel frattempo ho chiesto anche in programmazione e mi hanno detto che il calcolo da fare è questo:

    9*8*7*6*5*4*3*2*1 = 362880
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.