阿里雲虛假分支剖析
記得加入我們的學習群:
961566389
獲取最新資訊
1.a^2 + b^2 >= ab
形式
……
case 18432:
P = (fe = (Y = (Oo = 23) * Oo) + (P = (qe = 12 >> qe) * qe)) >= (Y = Oo * qe), L = w[m = L], j.push(L), li = 25664;
break;
case 25664:
w = G[I](35633, 36337), L = w[D], j.push(L), w = G[I](35633, 36337), L = w[N], j.push(L), w = G[I](35633, 36337), L = w[m], li = P ? 23107 : 13156;
break;
……
如上程式碼的P表示式:
fe = (Y = (Oo = 23) * Oo) + (P = (qe = 12 >> qe) * qe) >= (Y = Oo * qe)
這個表示式簡化:
((Oo = 23) * Oo) + (qe = 12 >> qe) * qe) >= Oo * qe
再簡化:
Oo * Oo + qe * qe >= Oo * qe
啊哈!!
這不就是基本的不等式嘛
a^2 + b^2 >= 2ab > ab
所以恆為真!!!
2.a^2 + b^2 >= 2ab
形式
P = (Oo = 30 <= Oo) * Oo, P += A = (qe = qe <= 28) * qe, fe = (bo = 1 != bo) * bo, A = (Y = 2) * Y;
化簡:
P = Oo * Oo + qe * qe, fe = bo * bo, A = Y * Y;
(A = P * (fe += A)) >= (Y = (bo = (fe = Oo * bo) + (P = qe * Y)) * bo)
化簡:
(Oo * Oo + qe * qe) * (bo * bo + Y * Y)
>=
(Oo * bo + qe * Y)^2
這不就是(a^2 + b2)*(c2+d^2) >= (ac+bd)^2
化簡就是(ad)2+(bc)2 >= 2adbc
也就是符合x^2 + y^2 >= 2xy
3.正數和0大於等於0
((P = 3 >> P) * P) > (P = (qe = 124 | (Y = !ie)) << 25)
左邊是P^2
恆大於等於0,右邊是0
124|0=124
124|1=125
無論是124還是125左移25位必定為零
3. 離散之美
(x+y)^2 >=3xy (x,y屬於{0,1})
4. 離散之美
(x+y)*x <=3xy (x,y屬於{0,1})
(A = (bo = (Oo = Oo <= 8) + (Y = so !== pe)) * bo) >= (qe = 3 * (fe = Oo * Y))
5. 離散之美
(x+y)*x <=3xy (x,y屬於{0,1})
6. 位運算
y^2 >= ((x&=31)<<31)
x&=31一定是小於等於31的數,那麼(x&=31)<<31一定等於0
(Oo |= 26) * Oo) > (Y = (Oo = 1 | (A &= 31)) << 31)
7.(R = 0 | (k = R)) < 0 、 (m = 0 | (x = m)) < 16384
等等……,瞭解下,即可,最好用的還是,去瀏覽器dump每個casenum下的真假,一直為真就是真,一直為假就是假。
記得加入我們的學習群:
961566389
獲取最新資訊