Nombres aleatoris X80386


Statement
 

pdf   zip

html

Donada una seqüència de probabilitats p1, …, pn (reals entre 0 i 1, tal que la seva suma fa 1) i un nombre N, feu un programa que torni un N nombres x1, …, xN tal que cada xi ∈ {0, n−1} i cada xi aparegui en el vector amb probabilitat pxi.

Per exemple, si les probabilitats són:

0.1,0.2,0.4,0.1,0.2

i N = 10, el programa ha de treure una llista de N enters entre el 0 i el 4, tal que el 0 hi aparegui amb una probabilitat del 10%, l’1 amb una probabilitat del 20%, el 2 amb una probabilitat del 40%, el 3 amb una probabilitat del 10%, i el 4 amb una probabilitat del 20%.

Cal tenir en compte que el programa també rebrà, com a paràmetre, una llavor per a la funció srand. Per tant, per a generar la llista de sortida caldrà fer servir la funció srand (que inicialitzareu amb la llavor que es donarà com a entrada) i la funció rand per a generar un nombre x ∈ {0,n−1} amb una probabilitat pxi.

Entrada

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

Sortida

Una llista de N enters en què cada enter apareix amb probabilitat pxi.

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