#P16520. [GKS 2015 #E] Not So Random

    ID: 18895 远端评测题 1000ms 1024MiB 尝试: 0 已通过: 0 显示难度普及+/提高− 上传者: 标签>数学2015Special Judge期望Google Kick Start

[GKS 2015 #E] Not So Random

题目描述

有一个特定的“随机数生成器”(RNG),它接受一个非负整数作为输入,并生成另一个非负整数作为输出。但你知道这个 RNG 实际上根本算不上随机!它使用一个固定的数字 KK,并且总是执行以下三种操作之一:

  • 以 A/100A/100 的概率:返回输入与 KK 的按位与
  • 以 B/100B/100 的概率:返回输入与 KK 的按位或
  • 以 C/100C/100 的概率:返回输入与 KK 的按位异或

(你可以假定 RNG 在每次基于 AA、BB 和 CC 的值选择操作时,确实是真正随机的。)

你拥有 NN 个这样的 RNG 副本,并将它们串联在一起,使得前一个机器的输出成为串联中下一个机器的输入。如果你将 XX 作为输入提供给第一个机器,那么串联中最后一个机器的输出的期望值是多少?

输入格式

输入的第一行给出测试用例的数量 TT。接下来是 TT 个测试用例;每个测试用例占一行,包含六个整数 NN、XX、KK、AA、BB 和 CC。它们分别表示机器的数量、初始输入、所有按位操作(在每台机器上)将使用的固定数字,以及按位与、按位或、按位异或操作的概率乘以 100100 后的值。

输出格式

对于每个测试用例,输出一行形如 Case #x: y 的内容,其中 xx 是测试用例编号(从 11 开始),yy 是最终输出的期望值。如果 yy 与正确答案的绝对或相对误差在 10−910^{-9} 以内,则被视为正确。

3
1 5 5 10 50 40
2 5 5 10 50 40
10 15 21 70 20 10
Case #1: 3.0000000000
Case #2: 3.6000000000
Case #3: 15.6850579098

提示

在样例测试用例 #1 中,如果发生按位与或按位或,最终输出将是 55;如果发生按位异或,最终输出将是 00。因此得到 55 的概率是 (0.1+0.50.1 + 0.5),得到 00 的概率是 0.40.4。所以最终输出的期望值是 5×0.6+0×0.4=35 \times 0.6 + 0 \times 0.4 = 3。

在样例测试用例 #2 中,最终输出以 0.720.72 的概率为 55,否则为 00。

限制

  • 1≤T≤501 \le T \le 50。
  • 0≤A≤1000 \le A \le 100。
  • 0≤B≤1000 \le B \le 100。
  • 0≤C≤1000 \le C \le 100。
  • A+B+C=100A + B + C = 100。

小数据集(测试集 1 - 可见)

  • 1≤N≤101 \le N \le 10。
  • 0≤X≤1040 \le X \le 10^4。
  • 0≤K≤1040 \le K \le 10^4。

大数据集(测试集 2 - 隐藏)

  • 1≤N≤1051 \le N \le 10^5。
  • 0≤X≤1090 \le X \le 10^9。
  • 0≤K≤1090 \le K \le 10^9。

翻译由 DeepSeek V4 Pro 完成