『数学期望·枚举』Rinbow的信号

本文介绍了一道关于数学期望和位运算的解密问题。Rainbow改进了传呼机信号,使得信息分为A、B、C三部分,通过不同位运算的期望值加密。解密过程中,需要计算异或、与、或这三种运算的期望值。解题思路是对二进制每一位进行枚举,并分析不同长度序列的概率和贡献,最终得出期望值的计算方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述

Freda发明了传呼机之后,rainbow进一步改进了传呼机发送信息所使用的信号。

由于现在是数字、信息时代,rainbow发明的信号用N个自然数表示。

为了避免两个人的对话被大坏蛋VariantF偷听,rainbow把对话分成A、B、C三部分,分别用a、b、c三个密码加密。

现在Freda接到了rainbow的信息,她的首要工作就是解密。

Freda了解到,这三部分的密码计算方式如下:

在1~N这N个数中,等概率地选取两个数l、r,如果l>r,则交换l、r。把信号中的第l个数到第r个数取出来,构成一个数列P。

A部分对话的密码是数列P的xor和的数学期望值,xor和就是数列P中各个数异或之后得到的数; xor和的期望就是对于所有可能选取的l、r,所得到的数列的xor和的平均数。

B部分对话的密码是数列P的and和的期望,定义类似于xor和。

C部分对话的密码是数列P的or和的期望,定义类似于xor和。

请你帮忙计算这三个密码。

题目大意

有n个数,每一选取一个区间得到这些数的异或值、或值和与值;求这三项的期望。

题解

这一题的主要思路就是对二进制的每一位进行拆分枚举。这道题主要考察对期望和位运算本质的理解。

具体的说,就是每一个数都对应一个二进制数;而二进制数数中,我们可以将其看作一个n行若干列的矩阵;由于每一列中互不影响,因此我们对于每一列进行单独处理。

对于长度为1的序列,概率为 1 n 2 \frac{1}{n^2} n21;因此对于每一列,例如是从右往左是第i列,假设以0为其实列进行计数,有j个1,则对答案的贡献是: j ∗ 2 i ∗ 1 n 2 j*2^i*\frac{1}{n^2} j2in21.

对于每一个长度不为1的序列,因为有左端点和右端点的重复选择,因此得到的概率为 2 n 2 \frac{2}{n^2} n2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值