zoukankan      html  css  js  c++  java
  • 出现一次的数字

    看了何海涛的日志 他分别解决了一个 两个 三个 出现一次的数字的思路 给人的感觉有一生二 二生三 三生万物的思维

    现把自己的感悟写下来

    一个 思路很简单 所有数字异或的结果

    两个 关键是区别 所有的数字异或的结果同时也是两个出现一次数字异或的结果 记为XORresult<>0 区别这两个数字就用XORresult中为1的某一位

    三个 关键还是区别 所有的数字异或的结果同时也是三个出现一次数字异或的结果 记为XORresult

        这个地方是关键哦

          经过一系列的反证法 作者得出来了一些列结论

            具体过程:

            1. 对于任何三个不为0的数字 i, j, k, f(i)^f(j)^f(k) 结果不可能为0 如下图

              

              

             因此 f[ f( XORresult^a ) ^ f( XORresult^b ) ^ f( XORresult^c ) ... ] 结果不可能为0;

            2. XORresult^a XORresult^b XORresult^c 第m位不可能都是1 这个很容易理解吧!

  • 相关阅读:
    测试的种类
    软件测试的原则
    软件测试的目的
    软件测试的对象
    软件的分类
    软件测试
    mysql 视图
    mysql 字段添加以及删除
    mysql 引擎类型
    mysql 数据插入insert
  • 原文地址:https://www.cnblogs.com/Knuth/p/3097286.html
Copyright © 2011-2022 走看看