Nombres aleatoris X80386


Statement
 

pdf   zip

Donada una seqüència de probabilitats p1,,pnp_1, \dots, p_n (reals entre 0 i 1, tal que la seva suma fa 1) i un nombre NN, feu un programa que torni un NN nombres x1,,xNx_1, \dots, x_N tal que cada xi{0,n1}x_i \in \{0, n-1\} i cada xix_i aparegui en el vector amb probabilitat pxip_{x_i}.

Per exemple, si les probabilitats són:

0.1,0.2,0.4,0.1,0.20.1,0.2,0.4,0.1,0.2

i N=10N = 10, el programa ha de treure una llista de NN enters entre el 00 i el 44, tal que el 00 hi aparegui amb una probabilitat del 10%10\%, l’11 amb una probabilitat del 20%20\%, el 22 amb una probabilitat del 40%40\%, el 33 amb una probabilitat del 10%10\%, i el 44 amb una probabilitat del 20%20\%.

Cal tenir en compte que el programa també rebrà, com a paràmetre, una llavor per a la funció srandsrand. Per tant, per a generar la llista de sortida caldrà fer servir la funció srandsrand (que inicialitzareu amb la llavor que es donarà com a entrada) i la funció randrand per a generar un nombre x{0,n1}x \in \{0,n-1\} amb una probabilitat pxip_{x_i}.

Entrada

Una enter que serà la llavor per a la funció srandsrand, un nombre NN d’enters que caldrà treure per la sortida, la mida de la llista de probabilitats, la llista de probabilitats.

Sortida

Una llista de NN enters en què cada enter apareix amb probabilitat pxip_{x_i}.

Public test cases
  • Input

    6
    10
    4
    0.30 0.20 0.10 0.40
    

    Output

    1 3 0 3 0 3 3 1 0 3 
    
  • Information
    Author
    Jaume Baixeries
    Language
    Catalan
    Official solutions
    Unknown.
    User solutions