Domanda

Ho un ordinata struttura di dati contigui (0 indice basato):

x= [1/3, 1/3, 1/3]

Let dire che ho selezionato indice 1 e ha aumentato la probabilità di 1/3. Riposo delle probabilità ogni diminuzione di 1/6 e la probabilità totale rimane P = 1.

x= [1/6, 2/3, 1/6]

Let dire che ho selezionato indice 2 e aumenta la probabilità di 1/3. Resto delle probabilità in stato di bisogno totale a diminuire di 1/3 per rendere la probabilità totale rimangono P = 1.

x= [1/10, 2/5, 1/2]

C'è un nome per questo tipo di struttura dati? Mi piacerebbe ricerca che nome e utilizzare una libreria al posto del mio codice laminati personalizzato, se possibile.

È stato utile?

Soluzione

Ciò può essere facilmente ottenuto un array $ A $ e un ulteriore variabile $ m $. La voce $ a [i] $ memorizza la probabilità di $ i $ volte $ m $.

Nel tuo esempio si inizia con

A=[1,1,1], m=3

La si aumenta la probabilità che il secondo elemento di 1/3. Questo può essere effettuato impostando $ A [2] = 4 $ e $ m = 6 $, che dà

A=[1,4,1], m=6

In generale, è possibile impostare la probabilità di elemento di $ k $ a $ p $ risolvendo il sistema $$ \ sum_i A [i] = m \ text {} e A [k] = p \ cdot m, $$ per le incognite $ A [k] $ e $ m $.

Quindi, tutto quello che dovete fare è impostare $ m $ a $$ m = \ frac {\ sum_ {i \ neq k} A [i]} {1-p}, $$ e $ A [k] = p \ cdot m $ per il nuovo $ m $.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a cs.stackexchange
scroll top