异或与对称差

a在离散数学里用表示异或运算,用⊕表示两个集合的对称差运算。而在集合论里面用来表示对称差,在上学期学的数字逻辑里面⊕表示异或运算。这些一样的符号在不同科目里面表示不一样的运算,一样的运算在不同科目里面用不同的符号表示,这将引起极大地混乱。这个时候直觉应该告诉我们,对称差跟异或有一定的关系。它们能扯上关系吗?其实在本质上它们是一样的。或者说在布尔代数里面的异或就是在集合运算的对称差。为了比较这两种运算,下面用的讨论中,用来表示对称差,⊕表示异或。

下面是两个运算性质的比较,这能很好的说明它们就是同一个东西,只是教科书永远都要让我们认为它们是不同的东西。

1.

  首先都看看这两个运算满足什么性质。

  最重要的是交换律和结合律。即

  ab=ba(ab)c=a(bc),

  a⊕b=b⊕a,  (a⊕b)⊕c=a⊕(b⊕c);

  其次是它们都满足这个性质:

     aa=∅,

     a⊕a=0;

2.  

    a△(ab)=b,

    a⊕(a⊕b)=b

3.

  如果ab=c,那么ac=b,bc=a;

  如果a⊕b=c,那么a⊕c=b,b⊕c=a;

  就是说:如果ab=c,那么a,b,c任何两个运算都等于剩下的那一个。

         如果a⊕b=c,那么a,b,c任何两个运算都等于剩下的那一个。

4.

 作为性质3的推广:

 如果,那么中任何n-1个运算结果都等于剩下的那一个。

 如果,那么中任何n-1个运算结果都等于剩下的那一个。(事实上,这里不一定非零即一,可以推广到任何两个正整数,异或就推广为按位异或)。

   性质4,其实在我们高中的时候就已经接触过类似的东西了。那就是三角形的垂心。任何三个不共线的顶点均能连成一个三角形,这个三角形有一个垂心,垂心跟三个顶点组成四个顶点,这四个顶点中任何三个顶点连成的三角形的垂心是剩下的那个点。说得有点绕。。。意思就是这四个点中任意三个点均以第四个点为垂心。

   性质4是很有用的一个运算,张金上课时就提过,数据的备份与恢复就是依据这个原理进行的。下面是这个原理:如果有n个存满数据的服务器,如何对这些数据进行backup呢?最简单的方法就是准备n个服务器,分别备份原来n个服务器的数据,但是这是很耗资源的一种方式。有没有资源节约型的方式呢?哈哈,只需要一个服务器就ok了,怎么弄呢?

把那n个服务器的数据按位异或结果按位放到这个服务器上,如果一旦其中任何一个服务器数据丢失,就可以用剩下的n个服务器的数据按位异或运算生成,这样就实现了一台机器对多台机器的数据进行备份。当然了,如果有两个服务器或者更多的服务器数据丢失的话,这种方法就没辙了。通常这种情况不会发生,只要把这些服务器在地理上分隔,一般的大灾难蔓延的距离就几百公里。。两个相隔较远的地方的服务器同时出事的可能性太小了。因此,可以通过这样的方式备份。这也是数学应用于生活的一个例子。


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值