Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di hfish
    Registrato dal
    Dec 2000
    Messaggi
    3,180

    [C++] numero casuale da 0 a 100

    con che funzione posso creare numeri casuali compresi tra 0 e 100??
    Non dobbiamo trascurare la probabilità che il costante inculcare la credenza in Dio nelle menti dei bambini possa produrre un effetto così forte e duraturo sui loro cervelli non ancora completamente sviluppati, da diventare per loro tanto difficile sbarazzarsene, quanto per una scimmia disfarsi della sua istintiva paura o ripugnanza del serpente.

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    srand() per inizializzare il seme del generatore di numeri casuali e rand() per estrarre un numero compreso tra 0 e MAX_RAND (se non erro). Quindi questo codice fa al caso tuo:
    codice:
    // Inizializzo il generatore di numeri casuali
    srand(time(NULL));
    
    // Estraggo un numero compreso fra 0 e 100
    int numero = rand() % 101;
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it L'avatar di hfish
    Registrato dal
    Dec 2000
    Messaggi
    3,180
    Originariamente inviato da LeleFT
    srand() per inizializzare il seme del generatore di numeri casuali e rand() per estrarre un numero compreso tra 0 e MAX_RAND (se non erro). Quindi questo codice fa al caso tuo:
    codice:
    // Inizializzo il generatore di numeri casuali
    srand(time(NULL));
    
    // Estraggo un numero compreso fra 0 e 100
    int numero = rand() % 101;
    Ciao.

    grazie mille x la risposta...
    mi servirebbe un piccolo chiarimento...

    perchè time(NULL) come argomento della funzione srand()?
    perchè rand() modulo 101?

    grazie mille ancora...
    Non dobbiamo trascurare la probabilità che il costante inculcare la credenza in Dio nelle menti dei bambini possa produrre un effetto così forte e duraturo sui loro cervelli non ancora completamente sviluppati, da diventare per loro tanto difficile sbarazzarsene, quanto per una scimmia disfarsi della sua istintiva paura o ripugnanza del serpente.

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Rispondo con ordine:

    1) quello è solamente un valore pseudo-casuale: il seme del generatore va inizializzato con un valore qualsiasi; per rendere la cosa più casuale possibile prendo il valore del timer di sistema nel momento in cui viene avviata quell'istruzione.

    2) la funzione rand restituisce un valore intero unsigned che va da 0 ad un certo valore massimo impostato in una variabile globale chiamata (se non erro) MAX_RAND. Tale valore, solitamente, coincide con il massimo valore che un intero può assumere (se un intero è di 2 byte, ad esempio, il massimo valore è 32768); a questo punto io gli faccio estrarre questo valore e dopo lo metto in modulo 101, così ottengo un valore compreso fra 0 e 100. Se conosci un po' di aritmetica modulare sai perchè il valore è compreso fra questi due valori.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Utente di HTML.it L'avatar di hfish
    Registrato dal
    Dec 2000
    Messaggi
    3,180
    grazie mille per la disponibilità e per la velocità delle risposte
    Non dobbiamo trascurare la probabilità che il costante inculcare la credenza in Dio nelle menti dei bambini possa produrre un effetto così forte e duraturo sui loro cervelli non ancora completamente sviluppati, da diventare per loro tanto difficile sbarazzarsene, quanto per una scimmia disfarsi della sua istintiva paura o ripugnanza del serpente.

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.