Donades n monedes i un natural k, heu de calcular la probabilitat d’obtenir exactament k cares quan es tira cada moneda una vegada. Cal tenir en compte que la moneda i-èsima té probabilitat pi de sortir cara (i probabilitat 1 − pi de sortir creu).
Entrada
L’entrada consisteix en diversos casos, cadascun amb n, k i les n probabilitats pi, totes entre 0 i 1. Podeu suposar 0 ≤ k ≤ n ≤ 1000.
Sortida
Per a cada cas, escriviu la probabilitat demanada amb quatre dígits decimals. Per fer-ho, poseu aquestes dues línies al principi del vostre main:
cout.setf(ios::fixed); cout.precision(4);
Els jocs de proves no tenen problemes de precisió.
Pista
La solució recursiva és una mica més senzilla.
Input
1 1 1 1 0 0.7 0 0 2 1 0.5 0.5 2 1 0.2 0.8 5 3 0.23 0.42 0.9 0 0.84
Output
1.0000 0.3000 1.0000 0.5000 0.6800 0.3674