无符号二进制算术。减法和平方
unsigned binary arithmetic. Subtraction and square it
我们有两个变量:
unsigned int a=5;
unsigned int b=3;
我们知道,
a-b==~(b-a)+1
但是如何证明
(a-b)*(a-b)==(b-a)*(b-a)
而不是 a-b==~(b-a)+1
我会使用 ℤ/2kℤ 是 ring。环中的 (a-b)*(a-b)==(b-a)*(b-a)
是已知的,但您可以从 (a + -b)*(a + -b)=(b + -a)*(b + -a)
开始并从那里开始:
使用分配率计算第一个产品:(a*a)+(a*-b)+(-b*a)+(-b*-b)
算出第二个产品:(b*b)+(b*-a)+(-a*b)+(-a*-a)
众所周知,在环 -x*y = x*-y = -(x*y)
和 --x = x
中,使用它来简化一点:
L: (a*a)+-(a*b)+-(b*a)+(b*b)
答:(b*b)+-(b*a)+-(a*b)+(a*a)
然后稍微重新排列一下。
我们有两个变量:
unsigned int a=5;
unsigned int b=3;
我们知道,
a-b==~(b-a)+1
但是如何证明
(a-b)*(a-b)==(b-a)*(b-a)
而不是 a-b==~(b-a)+1
我会使用 ℤ/2kℤ 是 ring。环中的 (a-b)*(a-b)==(b-a)*(b-a)
是已知的,但您可以从 (a + -b)*(a + -b)=(b + -a)*(b + -a)
开始并从那里开始:
使用分配率计算第一个产品:(a*a)+(a*-b)+(-b*a)+(-b*-b)
算出第二个产品:(b*b)+(b*-a)+(-a*b)+(-a*-a)
众所周知,在环 -x*y = x*-y = -(x*y)
和 --x = x
中,使用它来简化一点:
L: (a*a)+-(a*b)+-(b*a)+(b*b)
答:(b*b)+-(b*a)+-(a*b)+(a*a)
然后稍微重新排列一下。