Risultati da 1 a 4 di 4

Discussione: generazione numeri casuali in C tra double?

  1. #1
    New Member
    Data Registrazione
    28-07-2009
    Messaggi
    8

    [B]generazione numeri casuali in C tra double?[/B]

    salve sono uno studente di fisica della sapienza e sto preparando un esame di laboratorio di calcolo ( programmazione in C con emacs ) ma sono un po' confuso sull'argomento della generazione di numeri (pseudo)casuali compresi tra due numeri decimali.

    so bene che per generarli tra 0 e 1 con la funzione lrand48() basta scrivere:
    x=(double)lrand48()/RAND_MAX;

    e che per generarli tra un numero N e un numero K, entrambi però interi si usa:
    x=lrand48()%(N-K)+K;

    ma se N e K devono essere decimali, ad esempio 0.9 e 1.1 oppure tra -1 e 1??
    l'operatore % non funziona con i double infatti provando a dichiarare:

    double N=1.1, K=0.9;
    quando vado a compilare con gcc mi da un errore: "invalid operands to binary %" che appunto mi dice che % non funziona con i double.

    come posso fare?

    grazie in anticipo!!
    Ultima modifica di fenix_al; 02-02-2010 alle 17.23.18

  2. #2
    Senior Member L'avatar di LS66
    Data Registrazione
    23-01-2007
    Messaggi
    438
    Non ricordo molto, ho cercato informazioni. Ti può essere utile?

    drand48() ritorna numeri a doppia precisione compresi nel range [0.0, 1.0].

    A logica quindi per generare un numero casuale tra 0.9 e 1.1 farei drand48()*(1.1-0.9)+0.9.

    Ciao.

  3. #3
    New Member
    Data Registrazione
    28-07-2009
    Messaggi
    8
    mi ero dimenticato che esistono altre funzioni oltre a rand() e lrand48() per generare numeri casuali...

    grazie mille LS66, funziona benissimo!!

  4. #4
    Software Zone Fanatic
    Data Registrazione
    19-12-2004
    Messaggi
    27.613
    Oppure ne farei generare due :
    il primo per la parte intera da ... a
    e il secondo, sempre random da 0 a 100,

    che aggiungerei in una stringa numerica al primo numero intero trovato.

    Quindi se il primo fosse 7
    e il secondo fosse 63
    ne farei una stringa numerica composta da 7,63.

Segnalibri

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •