Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    3

    [C] numeri random in intervalli illimitati

    Devo cercare numeri random in diversi intervalli all'inteno dello stesso programma...se per intervalli limitati [a,b] faccio

    codice:
     numero_casuale = ((double) rand() /RAND_MAX) * (b-a)+a;
    mi chiedevo come fare per un intervallo illimitato inferiormente o superiormente??
    Per indicare in C un intervallo illimitato superiormente ha senso porre b=FLT_MAX??

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Direi di sì, per DBL_MAX
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    edit

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    3
    grazie Oregon!!

    mi ero posta una domanda stupida per gli intervalli illimitati superiormente perchè bastava effettuare una traslazione!!
    Credo di aver risolto il mio problema con questa funzione:
    codice:
     
    double doub_rand(double a,double b)
    {double numero_casuale;
     if(a!=-DBL_MAX && b!=DBL_MAX){                         //caso intervallo chiuso e limitato
                    numero_casuale = ((double) rand() /RAND_MAX) * (b-a);
                    numero_casuale += a ;
                    }
                    else if(a!=-DBL_MAX && b==DBL_MAX)       //caso intervallo illimitato superiormente
                         numero_casuale=(double) rand() + a;
                         else if(a==-DBL_MAX && b!=DBL_MAX)  //caso intervallo illimitato inferiormente
                              numero_casuale=(-(double) rand()) + b;
                              else                          //caso intervallo illimitato
                              numero_casuale = ((double) rand())-rand() ;
     return numero_casuale;
     }

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 © 2025 vBulletin Solutions, Inc. All rights reserved.