#3964. 🎲 牛局长的硬币实验-中

🎲 牛局长的硬币实验-中

🎲 牛局长的硬币实验

(兔猫信奥学院 · 牛局长 × 闪电 × 豹警官 × 朱迪 × 尼克)

故事背景

哨兵城安全局来学院进行概率学交流。牛局长 摆出一排形状各异的硬币,每枚硬币 $i$ 以概率 $prob_i$ 朝上。

“每枚硬币只抛一次。请你们告诉我:正面朝上的硬币数恰好等于 target 时的总体概率。”

闪电慢条斯理地记录数据;豹警官把硬币排成一列;朱迪和尼克则等着你的答案。


题目描述

给定实数数组 prob($1\le |prob|\le1000$,$0\le prob_i\le1$)和整数 target($0\le target\le|prob|$)。 一次性抛出全部硬币,求正面朝上硬币数等于 target 的概率,答案允许 $10^{-5}$ 误差。


输入格式

n          // 硬币数量
p1 p2 … pn // n 个概率,空格分隔
target     // 目标正面个数

输出格式

ans
  • ans —— 所求概率(双精度打印,误差 ≤ 1e‑5 即视为正确)

样例

1
0.4
1
0.4
5
0.5 0.5 0.5 0.5 0.5
0
0.03125

提示

  • 使用一维滚动动态规划,时间复杂度 $O(n\cdot target)$、空间 $O(target)$。
  • dp[j] 为当前已处理硬币中正面数 = j 的概率。