题目名称 1628. [SPOJ 2002] 随机和生成器
输入输出 rng.in/out
难度等级 ★★★☆
时间限制 1000 ms (1 s)
内存限制 256 MiB
测试数据 10
题目来源 Gravatarcstdio 于2014-05-10加入
开放分组 全部用户
提交状态
分类标签
概率分析 SPOJ 概率与期望
分享题解
通过:1, 提交:1, 通过率:100%
Gravatarcstdio 100 0.022 s 0.36 MiB C++
关于 随机和生成器 的近10条评论(全部评论)
真难……
Gravatarcstdio
2014-05-10 17:00 1楼

1628. [SPOJ 2002] 随机和生成器

★★★☆   输入文件:rng.in   输出文件:rng.out   评测插件
时间限制:1 s   内存限制:256 MiB

【题目描述】

$LoadingTime$ 几周前从他的同学那里得到了一个 $RNG$(随机数生成器),然后他花了很长时间来学习它。他发现 $RNG$ 可以在执行如下步骤后生成一个 $[-S,S]$ 内的随机实数:首先 $RNG$ 生成 $n$ 个正整数 $x_1……x_n$,这 $n$ 个整数的和等于 $s$。然后对于每个 $x_i$,它生成一个 $[-x_i,x_i]$ 内的随机实数。$RNG$ 输出这 $n$ 个生成的随机实数之和。$LoadingTime$ 注意到 $RNG$ 返回值的分布很有趣,并且他希望知道,对于给定的 $n$ 和 $x$,$RNG$ 的返回值在 $[A,B]$ 内的概率。你能帮助他吗?

【输入格式】

输入包含多组数据。

输入文件的第一行是数据组数 $T$。

对于每组数据,第一行有三个整数 $n,A,B(1 \leq N \leq 10,-100 \leq A \leq B \leq 100)$.

第二行有 $n$ 个整数 $x_1..x_n(1 \leq x_i \leq 10)$.

【输出格式】

对每组数据,输出一行一个实数,即所求的概率。你的答案被认为正确当且仅当它和标准答案之差不超过 $10^{-3}$。

【样例输入】

 5
1 -100 100
10
1 10 90
10
1 -20 5
10
2 -20 5
5 5
5 -5 10
1 2 3 4 5

【样例输出】

1.000000000
0.000000000
0.750000000
0.875000000
0.864720052

【提示】

和 $SPOJ$ 的评测方式略有不同。$SPOJ$ 上要求输出九位小数。

【来源】

SPOJ RNG