Generazione numeri random razionali

di il
7 risposte

Generazione numeri random razionali

Ciao a tutti! di solito uso
lrand48()%(B-A+1)+A
per generare numeri tra A e B...il problema è che ora mi servono razionali e l'operatore % opera solo su interi. Come posso fare?

7 Risposte

  • Re: Generazione numeri random razionali

    E bravo furbo!

    E che cosa e' un numero razionale? Il rapporto di due numeri interi!!!

    Robbbbba da elementari!!!!!!

    Ed ecco che ritorni al punto di partenza!

    E se poi la domanda e': come posso usare le 4 operazioni con i numeri razionali?

    Questa e' decisameeeeeeeeente un'altra storia, che coinvole: classi, overloading di operatori, passaggio parametri per valore/ per reference, normalizzazione di un numero razionale, ecc, ecc, ecc.
  • Re: Generazione numeri random razionali

    No la domanda era semplicemente il codice per generare numeri razionali in un intervallo, non capisco neanche di cosa stai parlando sinceramente
    ho capito dove vuoi arrivare ma purtroppo il funzionamento di lrand48 mi è sconosciuto e lo uso "alla cieca"
  • Re: Generazione numeri random razionali

    Non conosco la funzione lrand48()... prova ad usare rand()... Funziona cosi:
    includi time.h e nel main fai srand(time(NULL)); poi con due variabili intere (var1, var2) fai var1=rand()%A+B (avrai un numero tra B e A) poi dividi questo numero per quello che otterrai nella var2 (facendo sempre la stessa operazione) e il risultato lo salvi in una variabile float(che sarà il tuo numero generato casualmente)
  • Re: Generazione numeri random razionali

    Lrand48() e' come rand(), solo che usa un'altro algoritmo.

    Dal punto di vista del generatore di numeri casuali, non c'e' nessuna differenza. Le propireta' del generatore in questo caso (semplice) non hanno nessun effetto.

    Comunque ha parlato di numeri razionali, non numeri reali.

    Convertire un range di interi tra A e B in un range di numeri con la virgola tra a e b e' banale!

    Spero che non sia questo il problema, perche' altrimenti la vedo grama!
  • Re: Generazione numeri random razionali

    @Lore_valgi: grazie per la risposta, però il problema si pone lo stesso perchè gli estremi del mio intervallo, sono anch'essi razionali.

    @migliorabile: sinceramente non capisco il tuo astio nel rispondere alla domanda. Io avevo chiesto solo una mano con il codice, visto che ho iniziato a programmare da poco e non ho ancora capito bene la sintassi della generazione dei numeri. Se volevo sentirmi dire che è roba da elementari, non venivo a chiedere in un forum.
  • Re: Generazione numeri random razionali

    Se ho capito bene usi numeri con e senza virgola, prova a fare cosi se ad esempio usi numeri con solo due decimali dichiarati nelle variabili var1 e var2 dichiara altre due variabili intere tipo a e b e poi fai a = (int) var1*100; cosi togli la virgola!(uguale per b) Poi ti serve un' altra variabile float( numero ) e poi farai numero = rand()b+a; numero = numero/100; .... Se ho capito bene cosa intendi per razionali! Spero di esserti d'aiuto!
  • Re: Generazione numeri random razionali

    Hai pensato al casting?

    tu vorresti numeri con la virgola credo se non ho capito male.

    int x= 2;
    int y= 4;
    float ris;
    ris = 2.0 * 4.0;

    ris = 8.0

    forse ti ho detto una boiata perchè non ho capito che cerchi
Devi accedere o registrarti per scrivere nel forum
7 risposte