【题解】Rainbow的信号(位运算+概率期望)

本文介绍了一种基于数字信号的解密算法,用于保护Freda与Rainbow之间的通信免受VariantF监听。该算法涉及XOR、AND、OR运算的数学期望值计算,适用于信息安全与算法设计领域。

Rainbow的信号

1s,128 MB1s,128\ MB1s,128 MB

【题目描述】

FredaFredaFreda 发明了传呼机之后,rainbowrainbowrainbow 进一步改进了传呼机发送信息所使用的信号。由于现在是数字、信息时代,rainbowrainbowrainbow 发明的信号用 NNN 个自然数表示。为了避免两个人的对话被 大坏蛋 VariantFVariantFVariantF 偷听,rainbowrainbowrainbow 把对话分成 A、B、CA 、B 、CABC 三部分,分别用 a、b、ca、b、cabc 三个密码 加密。现在 FredaFredaFreda 接到了 rainbowrainbowrainbow 的信息,她的首要工作就是解密。FredaFredaFreda 了解到,这三部 分的密码计算方式如下:

1∼N1\sim N1NNNN 个数中,等概率地选取两个数 l、rl、rlr,如果 l>rl>rl>r,则交换 l、rl、rlr。把信号中的第 lll 个数到第 rrr 个数取出来,构成一个数列 PPP

AAA 部分对话的密码是数列 PPPxorxorxor 和的数学期望值。xorxorxor 和就是数列 PPP 中各个数异或之后得到的数; xorxorxor 和的期望就是对于所有可能选取的 l、rl、 rlr,所得到的数列的 xorxorxor 和的平均数。

BBB 部分对话的密码是数列 PPPandandand 和的期望,定义类似于 xorxorxor 和 。

CCC 部分对话的密码是数列 P 的 ororor 和的期望,定义类似于 xorxorxor 和 。

【输入格式】

第一行一个正整数 NNN

第二行 NNN 个自然数,表示 FredaFredaFreda 接到的信号。

【输出格式】

一行三个实数,分别表示 xorxorxor 和、andandand 和、ororor 和的期望,四舍五入保留 333 位小数,相邻两个实数之间用不少于一个空格隔开。三个实数分别占该测试点 40%、30%、30%40\%、30\%、30\%40%30%30% 的分数, 如果你的输出少于三个实数,或者你的输出不合法,将被判 000 分。

【样例输入】

2 
4 5 

【样例输出】

2.750 4.250 4.750 

【样例解释】

包含共四种可能的 l,rl,rl,r

l,rl,rl,r xorxorxor andandand ororor
1,11,11,1 444 444 444
1,21,21,2 111 444 555
2,12,12,1 111 444 555
2,22,22,2 555
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值