【题解】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
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值