| 82 | } |
| 83 | |
| 84 | public static void main(String[] args) { |
| 85 | // 课上讲的普通消元,例子1 |
| 86 | // 12, 9, 14, 11 |
| 87 | System.out.println("例子1"); |
| 88 | Arrays.fill(basis1, 0); |
| 89 | arr[1] = 12; |
| 90 | arr[2] = 9; |
| 91 | arr[3] = 14; |
| 92 | arr[4] = 11; |
| 93 | n = 4; |
| 94 | System.out.println("原始数组得到的异或结果如下"); |
| 95 | printXor(arr, n); |
| 96 | |
| 97 | System.out.println("==========================="); |
| 98 | System.out.println("普通消元得到的线性基 : "); |
| 99 | compute1(); |
| 100 | long[] b1 = new long[MAXN]; |
| 101 | int s1 = 0; |
| 102 | for (int i = BIT; i >= 0; i--) { |
| 103 | if (basis1[i] != 0) { |
| 104 | System.out.print(basis1[i] + " "); |
| 105 | b1[++s1] = basis1[i]; |
| 106 | } |
| 107 | } |
| 108 | System.out.println(); |
| 109 | System.out.println("是否能异或出0 : " + zero1); |
| 110 | System.out.println("普通消元得到的异或结果如下"); |
| 111 | printXor(b1, s1); |
| 112 | System.out.println("==========================="); |
| 113 | |
| 114 | System.out.println(); |
| 115 | System.out.println(); |
| 116 | |
| 117 | // 课上讲的普通消元,例子2 |
| 118 | // 2, 5, 11, 6 |
| 119 | System.out.println("例子2"); |
| 120 | Arrays.fill(basis1, 0); |
| 121 | arr[1] = 2; |
| 122 | arr[2] = 5; |
| 123 | arr[3] = 11; |
| 124 | arr[4] = 6; |
| 125 | n = 4; |
| 126 | System.out.println("原始数组得到的异或结果如下"); |
| 127 | printXor(arr, n); |
| 128 | System.out.println("==========================="); |
| 129 | System.out.println("普通消元得到的线性基 : "); |
| 130 | compute1(); |
| 131 | long[] b2 = new long[MAXN]; |
| 132 | int s2 = 0; |
| 133 | for (int i = BIT; i >= 0; i--) { |
| 134 | if (basis1[i] != 0) { |
| 135 | System.out.print(basis1[i] + " "); |
| 136 | b2[++s2] = basis1[i]; |
| 137 | } |
| 138 | } |
| 139 | System.out.println(); |
| 140 | System.out.println("是否能异或出0 : " + zero1); |
| 141 | System.out.println("普通消元得到的异或结果如下"); |