Algo

Percolation(渗滤)


这是Algorithms Part I第一章的练习部分。设计一个 \(N*N \) 渗滤系统,每个格子初始化为封闭状态。每次打开一个格子,直到系统渗滤为止。计算渗滤所需的平均打开格子数占总格子数的比例。

提示:

  1. 渗滤:意味系统第一行任意节点和最后一行任意节点连通。
  2. 使用WeightedQuickUnionUF数据结构来建模系统,并使用两个虚拟节点来判断系统是否渗滤。

原文地址: Percolation

异或运算

异或运算(exclusive or)又记作XOR,一般用插入符号(caret)^表示,其可以看到是更加单纯的或运算(|)。我们知道,或运算的规则是:

  • a=1,b=1,a|b=1 ①
  • a,b任意一个为1,a|b=1 ②

异或运算则是去除了或运算中的规则①,即只有a、b相异时,结果才为真,其他情形都为假。因此异或运算的真值表为:

0^0 = 0
0^1 = 1
1^0 = 1
1^1 = 0

与0异或,其值不变;与1异或,相当于取反。

异或运算有一些特殊的性质,利用这些性质,可以解决特定的问题。这也是本文所要讨论的重点。

...