• 线性基的小证明...


    这个... 看到一个大佬的证明,没看懂,就自己证了一下...

    定律

    对于一个集合 S (可重),设它任意个元素(至少一个)异或后能取到的值的集合为 T ,那么 T 中所有元素从 S 中异或得到概率是相等的

    证明

    我们先将原集合 S 中搞个线性基,那么此时线性基就相当于一个集合 H ,里面包含一些 S 中的元素,那么线性基中就有 |H| 个元素,按照定义, H 可以表示出 (2^{|H|}-1) 种权值(减去的一是线性基中默认的 0 ,可以理解为空集)。

    然后我们在 S 中取出 H 的补集 G ,那么这个补集可以异或出 (2^{|G|}) 个值(可重)

    现在我们分两步走:

    第一步

    我们发现所有的 G 集合能异或得到的值 x 都能在线性基 H 中找到唯一确定的子集(包括空集)使其异或和与 x 相等

    然后我们据此可以得到 (2^{|G|) 个 S 的子集,使得其中所有子集异或和为 0

    第二步

    首先我们拿出一个集合 A ,使得 A 的异或和为 x 且不能拆出任意一个异或和为 0 的子集

    然后我们在上面得到的 (2^{|G|}) 个异或和为 0 的集合中选出任意个集合(方案数为 (2^{2^{|G|}})

    最后我们把这些集合并起来,这里的合并指的是出现偶数次的元素丢掉,奇数次的保留,最后我们可以得到一个异或和为 x 的集合



    上面的做法看上去貌似是会算重的,但事实上我们发现每种值被算重的次数都是相等的,这样所有取值的选择集合方案数减去算重次数还是相等的

    证明总结: 玄学,背结论就好,不然感性理解...

  • 相关阅读:
    用C语言代码实现n进制数转换为十进制数
    RAID简介
    很久没更新自己的博客园的博客了
    微软之于程序员==铁饭碗破了
    sql编译执行过程
    sql server性能终结者锁
    sysprocesses
    SQL SERVER 2008的几个新东西:插入,删除,修改一起来(适合数据的同步)merger
    http Status Code Definitions
    sql server talbe valued parameters (tvp)
  • 原文地址:https://www.cnblogs.com/Judge/p/10915062.html
Copyright © 2020-2023  润新知