[C] Numeri pseudorandom con probabilità pesata

di il
5 risposte

[C] Numeri pseudorandom con probabilità pesata

Come si fa, in C, a generare dei numeri casuali con una certa probabilità?
es. io so come generare 0 o 1 casualmente; ma se volessi generare 1 con probabilità 70% e 0 con probabilità 30% ?

5 Risposte

  • Re: [C] Numeri pseudorandom con probabilità pesata



    In alternativa, usa C++11 ed i generatori di numeri casuali messi a disposizione dalla STL

    Nel caso indicato, la soluzione e' semplice: generi un numero tra 0 e 100: se e' minore di 70, ritorni 1, altrimenti 0.

    O fai il contrario: se e' minore di 30, ritorni 0, altrimenti 1.
  • Re: [C] Numeri pseudorandom con probabilità pesata

    O riempi un vettore di 10 elementi con tre 0 e sette 1
  • Re: [C] Numeri pseudorandom con probabilità pesata

    Non credo che il mio professore accetterebbe il metodo del vettore, anche se mi sembra una bellissima idea! Proverò a fare come dice migliorabile. Grazie mille!!
  • Re: [C] Numeri pseudorandom con probabilità pesata

    Anche il vettore funzionerebbe, MA bisogna rimescolarlo una volta chd si e' finito di utilizzarlo!

    Il range [0,100) puo' essere ridotto anche a [0,10).

    Nota: PERCHE' si deve escludere un estremo?
  • Re: [C] Numeri pseudorandom con probabilità pesata

    lollo_rese ha scritto:


    Non credo che il mio professore accetterebbe il metodo del vettore, anche se mi sembra una bellissima idea! Proverò a fare come dice migliorabile. Grazie mille!!
    Sicuramente è molto più rapida quella di migliorabile, nel vettore aggiungi solo il tempo in più di accedere all'elemento del vettore ma è comunque valida.
Devi accedere o registrarti per scrivere nel forum
5 risposte