Visualizzazione dei risultati da 1 a 6 su 6

Discussione: [C++] rand

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    4

    [C++] rand

    Ciao a tutti,volevo chiedere un chiarimento.
    In fondo al capitolo del libro che sto leggendo,c'è un esercizio che dice di scrivere delle istruzioni che generino un numero casuale, e lo assegnino alla variabile n.
    Il numero casuale deve essere compreso fra: 1 e 2
    1 e 100
    0 e 9
    -1 e 1
    -3 e 11
    1000 e 1112
    Ho scritto questo codice che genera 500 numeri:


    #include<iostream.h>
    #include<stdlib.h>

    int main()
    {
    int n;

    for(int i=1; i<=500 ; i++) // Genera 500 numeri casuali
    {
    n=1+rand()%2; //Genera numeri casuali compresi fra 1 e 2
    cout << n << " ";

    if(i%5==0) // Allinea i nummeri 5 per riga
    cout << endl;
    }

    return 0;
    }
    Questo codice va bene cambiando i parametri di rand solo per i primi 5 parametri della lista sopra, per l'ultimo (1000 e 1112), ho dovuto cambiare il codice come segue:

    #include<iostream.h>
    #include<stdlib.h>

    int main()
    {
    int n;

    for(int i=1; i<=500 ; i++) // Genera 50 numeri casuali
    {
    n=1+rand()%112; //Genera numeri casuali compresi fra 1 e 112 e somma al numero generato il valore 1000
    cout << n+1000 << " ";

    if(i%5==0) // Allinea i nummeri 5 per riga
    cout << endl;
    }

    return 0;
    }
    Mettendo l'istruzione 1000+rand()%1112; mi genera numeri a casaccio, volevo sapere se qualcuno mi sa dire il perché, e se l'istruzione rand non funziona correttamente, mettendo valori troppo alti come valore di scala davanti all'istruzione rand.

    Grazie

  2. #2

    Re: [C++] rand

    per generare numeri casuali tra 1000 e 1112 (compresi estremi) devi usare questa

    n = 1000 + rand() % 113

    in generale funziona così

    limite_inferiore + rand() % (ampiezza_intervallo+1)

    es: da 25 a 40

    n = 25 + rand() % 16

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    4
    Grazie per l'aiuto.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    105

    numeri casuali e variabili

    ciao a tutti ,rispolvero questa vecchia discussione per chiedervi una cosa su rand.
    sto programmando un semplice giochino di carte, il classico sette e mezzo, per ottenere numeri casuali tra 1 e 7 uso

    n=1+rand()%7

    che corrispondono appunto alla carte da 1 a 7, ma oltre a queste ci sono anche il fante (J), la donna (Q) e il re(K). come faccio a ottenere una carta casuale da un gruppo che comprende da 1 a 7 ma anche da J a K?

    può essere utile dichiarare le variabili

    int J=8, Q=9, K=10;

    spero sia chiaro
    uso dev c++... ringrazio per le risposte

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466

    Re: numeri casuali e variabili

    Originariamente inviato da drinu
    può essere utile dichiarare le variabili

    int J=8, Q=9, K=10;
    Sì ... e' utile ...

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301

    Moderazione

    Originariamente inviato da drinu
    ciao a tutti ,rispolvero questa vecchia discussione per chiedervi una cosa su rand.
    sto programmando un semplice giochino di carte [...]
    Trattandosi in fondo di un problema differente, meglio aprire una nuova discussione, soprattutto perché quella continuata è alquanto datata e conclusa da tempo.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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.