关于取模、进制的问题

发布时间 2023-09-07 21:46:34作者: Zlc晨鑫

先来定义一下取模(b不等于0)。

\(r(a, b) = a - b \times \lfloor \frac{a}{b} \rfloor = t\)

下面讨论一下t的取值范围。

  1. b>0

\(k=\lfloor \frac{a}{b} \rfloor\),则 \(r(a,b)=a-kb\)

因为 \(k \le \frac{a}{b} < k+1\)\(a-b\times \frac{a}{b}=0\)

配凑一下,就是 \(a-bk-b<a-b\times \frac{a}{b}=0\le a-bk\)

\(a-bk=r(a,b)\ge 0, a-bk=r(a,b)<b\),所以 \(0 \le r(a,b) < b\)

  1. b<0,同理 \(b<r(a,b)\le 0\)

接着我们尝试让情况二变成情况一的范围。

直觉告诉我们,不等式加上-b就可以了。

\(a=kb+r=r-b+b+kb=(k+1)b+(r-b)\)

此时 \(0<r(a,b)\le -b\),这个等号很烦,干脆当\(r(a,b)=0\)时不变化,这样就ok了。

于是,r的取值范围就统一为了 \(0 \le r < |b|\)