算法理论基础
奋斗的小跳蛙
仰望天空,脚踏实地。
展开
-
同余定理
我们假设 2个不同的整数x、y,被一个整数k相除时,得到相同的余数,那么我就可以称x、y同余。 x、y同余, 当他们相减时,余数就抵消掉了,剩下的那部分就是能被k整除。 x=kv1+r1,y=kv2+r1 x-y = k(v1-v2) 在x-y = k(v1-v2) 即 (x-y能被k整除) 成立时,就能说明x、y对于k同余 因为 x-y = k(v1-v2) 所以x、y同余可以表示为 x≡y(mod k) ...原创 2020-12-03 12:26:00 · 512 阅读 · 0 评论 -
位运算技巧
x & (-x) 可以获取到二进制中最右边的 1,且其它位设置为 0。换句话说,此操作将 x 所有位取反,但是最右边的 1 除外。 如何将二进制中最右边的 1 设置为 0:x & (x - 1)。原创 2020-11-23 10:15:24 · 118 阅读 · 0 评论 -
负整数的取模与取整的问题
a,b为两个整数,则 他们的商是 c= [a/b] 向下取整, 比如10/3 =3 对负数来说也是一样 10/-3 = -4 -3 /10 =-1 都是向下取整。 而取模运算就是 r = a-(cb) 。比如 10 % -3 先算 c = [10/-3] =-4 然后 r= 10-(-4-3) =-2 . ...原创 2020-11-23 09:20:02 · 1433 阅读 · 0 评论