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

    [c]consigli con rand()

    ciao ragà,volevo chiedervi una cosa:
    ho dichiarato 8 variabili di tipo int e ogni variabile viene generata tramite la funzione rand().Ogni variabile però deve essere diversa una dall'altra,per fare ciò devo utilizzo glli if facendo if(a==b),ecc ecc,oppure c'è qualche altro metodo??

    ciaooo e grazie in anticipo

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Ma anziché usare 8 variabili non puoi usare un array di 8 elementi?
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    si a questo ci avevo pensato,ma mi resta sempre il problema che generando 8 numeri e memorizzandoli nell'array può capitare qualcuno uguale...

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    1,469
    Originariamente inviato da maximus123
    si a questo ci avevo pensato,ma mi resta sempre il problema che generando 8 numeri e memorizzandoli nell'array può capitare qualcuno uguale...
    bhè la scelta "normale" sarebbe quella di usare una "vera" funzione rand, e non quella "banale".

    altra possibilità è, semplicemente, quella di verificare (nel vettore) che non ci siano elementi duplicati prima di "accodarne" uno, qualora ti servano tutti distinti.

    in generale anche i pseudocasuali possono essere identici (prova a lanciare un dado, può facilmente uscirti lo stesso numero più volte).

    però, in realtà, quello che scrivi potrebbe effettivamente capitare

  5. #5
    a me tutto questo serve perchè devo fare la distribuzione di 8 carte e le carte le memorizzo in un array...quindi le carte devono essere tutte diverse l'una dall'altra e per forza devono essere diversi i numeri generati...

  6. #6
    come ti hanno suggerito basta che ogni volta che generi un nuovo valore controlli che non sia presente nell'array (usa l'array, non 8 variabili diverse)

    qualcosa tipo

    codice:
    for (i=0; i<8; i++){
        ok = false;
        while(!ok){
           array[i] = numeroRandom();
           ok = true;
           for(j=0; j<i; j++){
               if(array[i] == array[j]) ok = false;
           }
       }
    }
    per fare una roba proprio banale

  7. #7
    Utente di HTML.it L'avatar di Mad_al
    Registrato dal
    Jun 2009
    Messaggi
    125
    prova a fare un rand con un range di seed abbastanza ampio.

  8. #8
    ho risolto con il metodo proposto da Celebron...

    grazie mille a tutti ragà

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.