tags: DSA Combinatorics Mathematics

写在前面

今天(2022.12.7)的lc每日一题, 虽然是中等但也有很多需要注意的点, 看到了0x3f大佬的题解才发现自己知识点的太多不足, 比如下面这个式子:(出自具体数学练习3.12)
⌈ n m ⌉ = ⌊ n + m − 1 m ⌋ = ⌊ n − 1 m ⌋ + 1. \left\lceil \frac{n}{m} \right\rceil = \left\lfloor \frac{n+m-1}{m} \right\rfloor = \left\lfloor \frac{n - 1}{m} \right\rfloor + 1. ⌈mn​⌉=⌊mn+m−1​⌋=⌊mn−1​⌋+1.
本文主要给出取整函数的一些内容, 包括几个重要的取整函数以及上下取整函数之间的关系等.

参考了具体数学1, Wikipedia2以及3.

基本概念

这里的一些定义, 记号等均参考了具体数学.

取整函数

  1. 上取整(ceil): ⌈ x ⌉ \lceil x\rceil ⌈x⌉, 表示大于等于 x x x的最小整数;
  2. 下取整(floor): ⌊ x ⌋ \lfloor x\rfloor ⌊x⌋, 表示小于等于 x x x的最大整数;
  3. 取整(等价于下取整): [ x ] [x] [x], 同下取整.

数的表示

设 x ∈ R x\in\mathbb R x∈R, 则

  1. ⌊ x ⌋ \lfloor x\rfloor ⌊x⌋表示 x x x的整数部分(integer part)

  2. { x } \{x\} {x}表示 x x x的分数部分(fractional part), (不与单元素集合混淆的情况下)

  3. 关系:
    x = ⌊ x ⌋ + { x } ⟺ { x } = x − ⌊ x ⌋ . x=\lfloor x\rfloor+\{x\}\iff\{x\}=x-\lfloor x\rfloor. x=⌊x⌋+{x}⟺{x}=x−⌊x⌋.

取余运算

(下取整表示)设 m , n ∈ N ∗ m,n\in\mathbb N^* m,n∈N∗, 则
n = m ⋅ ⌊ n / m ⌋ ⏟ 商 + n m o d m ⏟ 余数 (1) n=m\cdot\underbrace{\lfloor n/m \rfloor}_{\text{商}}+\underbrace{n\bmod m}_{\text{余数}}\tag{1} n=m⋅商 ⌊n/m⌋​​+余数 nmodm​​(1)
其中, n m o d m ∈ [ 0 , m ) n\bmod m\in[0, m) nmodm∈[0,m).

性质

取余运算

范围

由 ( 1 ) (1) (1), 得
n m o d m = n − m ⌊ n / m ⌋ n\bmod m=n-m\lfloor n/m \rfloor nmodm=n−m⌊n/m⌋
推广:(设 x , y ∈ R x,y\in\mathbb R x,y∈R)
x m o d y = x − y ⌊ x / y ⌋ , y ≠ 0. x\bmod y=x-y\lfloor x/y \rfloor,\ y\ne0. xmody=x−y⌊x/y⌋, y​=0.
于是:
{ x m o d y ∈ [ 0 , y ) , y > 0 x m o d y ∈ ( y , 0 ] , y < 0 \begin{cases} x\bmod y\in [0,y),&y>0\\ x\bmod y\in (y,0],&y<0 \end{cases} {xmody∈[0,y),xmody∈(y,0],​y>0y<0​

另外, 定义
x m o d 0 = x . (2) x\bmod 0=x.\tag{2} xmod0=x.(2)

类似, 定义一个新的运算 m u m b l e \rm mumble mumble, 用上取整表示数:
x = y ⋅ ⌈ x / y ⌉ − x m u m b l e y , y ≠ 0. x=y\cdot \lceil x/y\rceil-x\ \rm{mumble}\ y, \ y\ne0. x=y⋅⌈x/y⌉−x mumble y, y​=0.

分配律

∀ c , x , y ∈ R \forall c,x,y\in \mathbb R ∀c,x,y∈R,
c ( x m o d y ) = ( c x ) m o d ( c y ) . c(x\bmod y)=(cx)\bmod(cy). c(xmody)=(cx)mod(cy).

证明:

∀ c y ≠ 0 \forall cy\ne0 ∀cy​=0,
c ( x m o d y ) = c ( x − y ⌊ x / y ⌋ ) = c x − c y ⌊ c x / c y ⌋ = ( c x ) m o d ( c y ) . \begin{aligned} c(x\bmod y) &=c(x-y\lfloor x/y\rfloor)\\ &=cx-cy\lfloor cx/cy\rfloor\\ &=(cx)\bmod(cy). \end{aligned} c(xmody)​=c(x−y⌊x/y⌋)=cx−cy⌊cx/cy⌋=(cx)mod(cy).​
当 y = 0 y=0 y=0时, 根据定义 ( 2 ) (2) (2), 分配律依然成立.

数的表示

用取余重写数的表示(整数部分, 分数部分)
x = ⌊ x ⌋ + x m o d 1. x=\lfloor x\rfloor+x\bmod 1. x=⌊x⌋+xmod1.

关系

幂等性

⌊ ⌊ x ⌋ ⌋ = ⌊ x ⌋ , ⌈ ⌈ x ⌉ ⌉ = ⌈ x ⌉ , { { x } } = { x } . \begin{aligned} \Big\lfloor \lfloor x \rfloor \Big\rfloor &= \lfloor x \rfloor, \\ \Big\lceil \lceil x \rceil \Big\rceil &= \lceil x \rceil, \\ \Big\{ \{ x \} \Big\} &= \{ x \}. \end{aligned} ⌊⌊x⌋⌋⌈⌈x⌉⌉{{x}}​=⌊x⌋,=⌈x⌉,={x}.​

并有:(只关注内层作用)
⌊ ⌈ x ⌉ ⌋ = ⌈ x ⌉ , ⌈ ⌊ x ⌋ ⌉ = ⌊ x ⌋ , \begin{aligned} \Big\lfloor \lceil x \rceil \Big\rfloor &= \lceil x \rceil, \\ \Big\lceil \lfloor x \rfloor \Big\rceil &= \lfloor x \rfloor, \end{aligned} ⌊⌈x⌉⌋⌈⌊x⌋⌉​=⌈x⌉,=⌊x⌋,​

互反律

⌊ x ⌋ + ⌈ − x ⌉ = 0 , − ⌊ x ⌋ = ⌈ − x ⌉ , − ⌈ x ⌉ = ⌊ − x ⌋ . \begin{aligned} \lfloor x \rfloor +\lceil -x \rceil &= 0, \\ -\lfloor x \rfloor &= \lceil -x \rceil, \\ -\lceil x \rceil &= \lfloor -x \rfloor. \end{aligned} ⌊x⌋+⌈−x⌉−⌊x⌋−⌈x⌉​=0,=⌈−x⌉,=⌊−x⌋.​

并且:
⌊ x ⌋ + ⌊ − x ⌋ = { 0 , 若   x ∈ Z , − 1 , 若   x ∉ Z , ⌈ x ⌉ + ⌈ − x ⌉ = { 0 , 若   x ∈ Z , 1 , 若   x ∉ Z . \lfloor x \rfloor + \lfloor -x \rfloor = \begin{cases} 0,&\text{ 若 }\ x\in \mathbb{Z},\\ -1,&\text{ 若 }\ x\not\in \mathbb{Z}, \end{cases} \\[5pt] \lceil x \rceil + \lceil -x \rceil = \begin{cases} 0,&\text{ 若 }\ x\in \mathbb{Z},\\ 1,&\text{ 若 }\ x\not\in \mathbb{Z}. \end{cases} ⌊x⌋+⌊−x⌋={0,−1,​ 若  x∈Z, 若  x​∈Z,​⌈x⌉+⌈−x⌉={0,1,​ 若  x∈Z, 若  x​∈Z.​
针对小数部分( { x } = x − ⌊ x ⌋ \{x \} = x - \lfloor x \rfloor {x}=x−⌊x⌋):
{ x } + { − x } = { 0 , 若   x ∈ Z , 1 , 若   x ∉ Z . \{ x \} + \{ -x \} = \begin{cases} 0,&\text{ 若 }\ x\in \mathbb{Z},\\ 1,&\text{ 若 }\ x\not\in \mathbb{Z}. \end{cases} {x}+{−x}={0,1,​ 若  x∈Z, 若  x​∈Z.​

与整数的关系

  1. ⌈ x ⌉ ⩾ x \lceil x\rceil\geqslant x ⌈x⌉⩾x; ⌊ x ⌋ ⩽ x \lfloor x\rfloor\leqslant x ⌊x⌋⩽x; ⌊ x ⌋ ⩽ ⌈ x ⌉ \lfloor x \rfloor \leqslant \lceil x \rceil ⌊x⌋⩽⌈x⌉.

  2. ⌊ x ⌋ = x ⟺ x ∈ Z ⟺ ⌈ x ⌉ = x \lfloor x\rfloor=x\iff x\in \mathbb Z\iff \lceil x\rceil=x ⌊x⌋=x⟺x∈Z⟺⌈x⌉=x;

  3. If x ∉ Z x\notin \mathbb Z x∈/​Z, then ⌈ x ⌉ − ⌊ x ⌋ = [ x not an integer ] = 1 \lceil x\rceil-\lfloor x\rfloor=[x\ \text{not an integer}]=1 ⌈x⌉−⌊x⌋=[x not an integer]=1.
    另一种表述:
    ⌈ x ⌉ − ⌊ x ⌋ = [ x 是否为整数 ] = { 0 , 若   x ∈ Z , 1 , 若   x ∉ Z . \lceil x \rceil - \lfloor x \rfloor = [x\text{是否为整数}]= \begin{cases} 0,&\text{ 若 }\ x\in \mathbb{Z},\\ 1,&\text{ 若 }\ x\not\in \mathbb{Z}. \end{cases} ⌈x⌉−⌊x⌋=[x是否为整数]={0,1,​ 若  x∈Z, 若  x​∈Z.​

  4. x − 1 < ⌊ x ⌋ x-1<\lfloor x\rfloor x−1<⌊x⌋, x + 1 > ⌈ x ⌉ x+1>\lceil x\rceil x+1>⌈x⌉, so we have:
    x − 1 < ⌊ x ⌋ ⩽ x ⩽ ⌈ x ⌉ < x + 1. x-1<\lfloor x\rfloor\leqslant x\leqslant \lceil x\rceil<x+1. x−1<⌊x⌋⩽x⩽⌈x⌉<x+1.


设 n ∈ Z , x ∈ R n\in\mathbb Z,\ x\in \mathbb R n∈Z, x∈R, 则有:
{ ⌊ x ⌋ = n ⟺ n ⩽ x < n + 1 ⌊ x ⌋ = n ⟺ x − 1 < n ⩽ x ⌈ x ⌉ = n ⟺ n − 1 < x ⩽ n ⌈ x ⌉ = n ⟺ x ⩽ n < x + 1 \begin{cases} \lfloor x\rfloor=n\iff n\leqslant x<n+1\\ \lfloor x\rfloor=n\iff x-1<n\leqslant x\\[10pt] \lceil x\rceil=n\iff n-1<x\leqslant n\\ \lceil x\rceil=n\iff x\leqslant n<x+1\\ \end{cases} ⎩⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎧​⌊x⌋=n⟺n⩽x<n+1⌊x⌋=n⟺x−1<n⩽x⌈x⌉=n⟺n−1<x⩽n⌈x⌉=n⟺x⩽n<x+1​
并有, 整数项移出取整号:
{ ⌊ x + n ⌋ = ⌊ x ⌋ + n , ⌈ x + n ⌉ = ⌈ x ⌉ + n , (*) \begin{cases} \lfloor x+n\rfloor=\lfloor x\rfloor+n,\\ \tag{*} \lceil x+n\rceil=\lceil x\rceil+n, \end{cases} {⌊x+n⌋=⌊x⌋+n,⌈x+n⌉=⌈x⌉+n,​(*)
不等式的转换:
{ ⌊ x ⌋ < n ⟺ x < n ⌊ x ⌋ ⩾ n ⟺ x ⩾ n ⌈ x ⌉ > n ⟺ x > n ⌈ x ⌉ ⩽ n ⟺ x ⩽ n \begin{cases} \lfloor x\rfloor<n \iff x<n\\ \lfloor x\rfloor\geqslant n\iff x\geqslant n \\[10pt] \lceil x\rceil>n\iff x> n\\ \lceil x\rceil\leqslant n\iff x\leqslant n\\ \end{cases} ⎩⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎧​⌊x⌋<n⟺x<n⌊x⌋⩾n⟺x⩾n⌈x⌉>n⟺x>n⌈x⌉⩽n⟺x⩽n​

与函数的关系

设 f ( x ) f(x) f(x)是任意一个具有如下性质且在一个实数区间内连续的单调递增函数, 即:
f ( x ) = integer ⟹ x = integer . f(x)=\text{integer}\Longrightarrow x=\text{integer}. f(x)=integer⟹x=integer.
则有(若函数 f ( x ) , f ( ⌊ x ⌋ ) , f ( ⌈ x ⌉ ) f(x),f(\lfloor x\rfloor),f(\lceil x\rceil) f(x),f(⌊x⌋),f(⌈x⌉)有定义)
⌊ f ( x ) ⌋ = ⌊ f ( ⌊ x ⌋ ) ⌋ , ⌈ f ( x ) ⌉ = ⌈ f ( ⌈ x ⌉ ) ⌉ . \lfloor f(x)\rfloor=\lfloor f(\lfloor x\rfloor)\rfloor,\quad \lceil f(x)\rceil=\lceil f(\lceil x\rceil)\rceil. ⌊f(x)⌋=⌊f(⌊x⌋)⌋,⌈f(x)⌉=⌈f(⌈x⌉)⌉.

证明:(反证)

  • 当 x = ⌈ x ⌉ x=\lceil x\rceil x=⌈x⌉, 显然成立.

  • 当 x < ⌈ x ⌉ x<\lceil x\rceil x<⌈x⌉时, 根据函数 f ( x ) f(x) f(x)单调性得到:
    f ( x ) < f ( ⌈ x ⌉ ) , f(x)<f(\lceil x\rceil), f(x)<f(⌈x⌉),
    根据上取整函数非降性质, 又可得到:
    ⌈ f ( x ) ⌉ ⩽ ⌈ f ( ⌈ x ⌉ ) ⌉ , \lceil f(x)\rceil\leqslant \lceil f(\lceil x\rceil)\rceil, ⌈f(x)⌉⩽⌈f(⌈x⌉)⌉,

    • 若 ⌈ f ( x ) ⌉ < ⌈ f ( ⌈ x ⌉ ) ⌉ \lceil f(x)\rceil< \lceil f(\lceil x\rceil)\rceil ⌈f(x)⌉<⌈f(⌈x⌉)⌉, 由 f f f连续性, 必定存在数 y y y, 使得 x ⩽ y < ⌈ x ⌉ x\leqslant y<\lceil x\rceil x⩽y<⌈x⌉, 以及 f ( y ) = ⌈ f ( x ) ⌉ f(y)=\lceil f(x)\rceil f(y)=⌈f(x)⌉. 由于 f f f定义, y ∈ Z y\in\mathbb Z y∈Z, 但是不存在介于 ⌊ x ⌋ \lfloor x\rfloor ⌊x⌋和 ⌈ x ⌉ \lceil x\rceil ⌈x⌉之间的整数, 矛盾, 由此得证.

由此得到一个特例:

∀ m ∈ Z \forall m\in \mathbb Z ∀m∈Z, n ∈ N ∗ n\in\mathbb N^* n∈N∗, 有
⌈ x + m n ⌉ = ⌈ ⌈ x ⌉ + m n ⌉ , ⌊ x + m n ⌋ = ⌊ ⌊ x ⌋ + m n ⌋ . (**) \left\lceil \frac {x+m}n\right\rceil=\left\lceil \frac {\lceil x\rceil+m}n\right\rceil,\ \left\lfloor \frac {x+m}n\right\rfloor=\left\lfloor \frac {\lfloor x\rfloor+m}n\right\rfloor.\tag{**} ⌈nx+m​⌉=⌈n⌈x⌉+m​⌉, ⌊nx+m​⌋=⌊n⌊x⌋+m​⌋.(**)

恒等式

每组近似分配(埃尔米特恒等式的特例)

将 n n n个物品分成 m m m组, 按照非增次序排列且尽可能相等的部分的划分:
n = ⌈ n m ⌉ + ⌈ n − 1 m ⌉ + ⋯ + ⌈ n − m + 1 m ⌉ . (3) n=\left\lceil \frac nm\right\rceil+\left\lceil \frac {n-1}m\right\rceil+\cdots+\left\lceil \frac {n-m+1}m\right\rceil.\tag{3} n=⌈mn​⌉+⌈mn−1​⌉+⋯+⌈mn−m+1​⌉.(3)

证明: (构造)

设 n = q m + r n=qm+r n=qm+r, 其中 q = ⌊ n / m ⌋ q=\lfloor n/m\rfloor q=⌊n/m⌋, r = n m o d m , 0 ⩽ r < m r=n\bmod m, 0\leqslant r<m r=nmodm,0⩽r<m, 则:

  • 当 r = 0 r=0 r=0, 此时将 q = ⌊ n / m ⌋ q=\lfloor n/m\rfloor q=⌊n/m⌋件物品放入第一组, 并且用 n ′ = n − q n'=n-q n′=n−q替换 n n n, 让 n ′ = q m ′ n'=qm' n′=qm′件物品放入剩下的 m ′ = m − 1 m'=m-1 m′=m−1组中, 重复这个操作直到物品都被分组.

  • 当 r > 0 r>0 r>0, 将 ⌈ n / m ⌉ = ⌊ n / m ⌋ + 1 = q + 1 \lceil n/m\rceil=\lfloor n/m\rfloor+1= q+1 ⌈n/m⌉=⌊n/m⌋+1=q+1件物品放进第一组, 用 n ′ = n − q − 1 n'=n-q-1 n′=n−q−1替换 n n n,

    n ′ = n − q − 1 = q m + r − q − 1 = q ( m − 1 ⏟ m ′ ) + r − 1 ⏟ r ′ n'=n-q-1=qm+r-q-1=q(\underbrace{m-1}_{m'})+\underbrace{r-1}_{r'} n′=n−q−1=qm+r−q−1=q(m′ m−1​​)+r′ r−1​​

    即 n ′ = q m ′ + r − 1 n'=qm'+r-1 n′=qm′+r−1件物品留给后面的分组. 此时新的余数为 r ′ = r − 1 r'=r-1 r′=r−1, 但 q q q保持不变.
    当余数 r r r减到 0 0 0时, 此时情况同上, 所以有
    n 件 商 品 : { r 个 组 : q + 1 件 物 品 m − r 个 组 : q 件 物 品 n件商品:\begin{cases} \qquad r个组:q+1件物品\\ m-r个组:q件物品 \end{cases} n件商品:{r个组:q+1件物品m−r个组:q件物品​

那么在第 k k k组( 1 ⩽ k ⩽ m 1\leqslant k\leqslant m 1⩽k⩽m)中有多少物品?

应该是:
⌈ n − k + 1 m ⌉ \left\lceil \frac {n-k+1}m\right\rceil ⌈mn−k+1​⌉

证明:

将 n = q m + r n=qm+r n=qm+r代入上式, 得到:
⌈ n − k + 1 m ⌉ = ⌈ q m + r − k + 1 m ⌉ = ( ∗ ) q + ⌈ r − k + 1 m ⌉ \left\lceil \frac {n-k+1}m\right\rceil=\left\lceil \frac {qm+r-k+1}m\right\rceil\stackrel{(*)}{=}q+\left\lceil \frac {r-k+1}m\right\rceil ⌈mn−k+1​⌉=⌈mqm+r−k+1​⌉=(∗)q+⌈mr−k+1​⌉
应用边界条件: 1 ⩽ k ⩽ m , 0 ⩽ r < m 1\leqslant k\leqslant m,\ 0\leqslant r<m 1⩽k⩽m, 0⩽r<m, 得到
⌈ r − k + 1 m ⌉ = [ k ⩽ r ] \left\lceil \frac {r-k+1}m\right\rceil=[k\leqslant r] ⌈mr−k+1​⌉=[k⩽r]
上面的 [ k ⩽ r ] [k\leqslant r] [k⩽r]表示当满足 k ⩽ r k\leqslant r k⩽r时, 取 1 1 1, 否则取 0 0 0, 这正好满足我们上面给出的构造分组的方法.

将其写成累加形式, 则有:
n = ⌈ n m ⌉ + ⌈ n − 1 m ⌉ + ⋯ + ⌈ n − m + 1 m ⌉ = ∑ i = 0 m − 1 ⌈ n − i m ⌉ = q m + ∑ i = 0 m − 1 ⌈ r − i m ⌉ = q m + ∑ i = 0 r − 1 ⌈ r − i m ⌉ = q m + r \begin{aligned} n&=\left\lceil \frac nm\right\rceil+\left\lceil \frac {n-1}m\right\rceil+\cdots+\left\lceil \frac {n-m+1}m\right\rceil\\ &=\sum_{i=0}^{m-1}\left\lceil \frac {n-i}m\right\rceil=qm+\sum_{i=0}^{m-1}\left\lceil \frac {r-i}m\right\rceil\\ &=qm+\sum_{i=0}^{r-1}\left\lceil \frac {r-i}m\right\rceil=qm+r\\ \end{aligned} n​=⌈mn​⌉+⌈mn−1​⌉+⋯+⌈mn−m+1​⌉=i=0∑m−1​⌈mn−i​⌉=qm+i=0∑m−1​⌈mr−i​⌉=qm+i=0∑r−1​⌈mr−i​⌉=qm+r​

同理, 根据各个部分按照非减的次序排列, 小的组放在前面, ( ⌊ n / m ⌋ \lfloor n/m\rfloor ⌊n/m⌋在第一组)就得到:
n = ⌊ n m ⌋ + ⌊ n + 1 m ⌋ + ⋯ + ⌊ n + m − 1 m ⌋ . (3’) n=\left\lfloor \frac nm\right\rfloor+\left\lfloor \frac {n+1}m\right\rfloor+\cdots+\left\lfloor \frac {n+m-1}m\right\rfloor.\tag{3'} n=⌊mn​⌋+⌊mn+1​⌋+⋯+⌊mn+m−1​⌋.(3’)
针对上面得到的结论, 还可以进行推广:

利用 ⌊ m x ⌋ \lfloor mx\rfloor ⌊mx⌋替换 ( 3 ′ ) (3') (3′)式中的 n n n, 并用 ( ∗ ∗ ) (**) (∗∗)式去掉下取整函数中的下取整函数可以得到:
⌊ m x ⌋ = ⌊ x ⌋ + ⌊ x + 1 m ⌋ + ⋯ + ⌊ x + m − 1 m ⌋ . \lfloor mx\rfloor=\left\lfloor x\right\rfloor+\left\lfloor x+\frac 1m\right\rfloor+\cdots+\left\lfloor x+\frac{m-1}m\right\rfloor. ⌊mx⌋=⌊x⌋+⌊x+m1​⌋+⋯+⌊x+mm−1​⌋.
上式就是埃尔米特恒等式.

★ \bigstar ★上下取整转换

下面介绍前言部分提到的一个重要的关系, 利用这个式子可以方便的转换上取整和下取整, 因为计算机编程语言中常用下取整.
⌈ n m ⌉ = ⌊ n + m − 1 m ⌋ = ⌊ n − 1 m ⌋ + 1. (***) \left\lceil \frac{n}{m} \right\rceil = \left\lfloor \frac{n+m-1}{m} \right\rfloor = \left\lfloor \frac{n - 1}{m} \right\rfloor + 1.\tag{***} ⌈mn​⌉=⌊mn+m−1​⌋=⌊mn−1​⌋+1.(***)
以及:
⌊ n m ⌋ = ⌈ n − m + 1 m ⌉ = ⌈ n + 1 m ⌉ − 1. \left\lfloor \frac{n}{m} \right\rfloor = \left\lceil \frac{n-m+1}{m} \right\rceil = \left\lceil \frac{n + 1}{m} \right\rceil - 1. ⌊mn​⌋=⌈mn−m+1​⌉=⌈mn+1​⌉−1.

证明:(方法1)

直接由埃尔米特恒等式的特例 ( 3 ) (3) (3)的第一项等于 ( 3 ′ ) (3') (3′)式的第二项, 即为本结论, 需要从组合意义角度出发. (分组方法)

证明:(方法2)

对 ( ∗ ⁣ ∗ ⁣ ∗ ) (*\!*\!*) (∗∗∗)两端同时减去 ⌊ n m ⌋ \left\lfloor \dfrac nm\right\rfloor ⌊mn​⌋, 得到:

  • 左边:(利用与整数的关系之3)
    ⌈ n m ⌉ − ⌊ n m ⌋ = ⌈ n m o d m m ⌉ = { 0 , 若  n m o d m = 0 , 1 , 若  n m o d m > 0. \left\lceil \frac{n}{m} \right\rceil-\left\lfloor \dfrac nm\right\rfloor=\left\lceil\frac{n\bmod m}{m}\right\rceil=\begin{cases} 0,&\text{ 若 }n\bmod m=0,\\ 1,&\text{ 若 }n\bmod m>0. \end{cases} ⌈mn​⌉−⌊mn​⌋=⌈mnmodm​⌉={0,1,​ 若 nmodm=0, 若 nmodm>0.​

  • 右边:
    可设 n = m q + r n=mq+r n=mq+r, 并有 q = ⌊ n / m ⌋ , 0 ⩽ r = n m o d m < m q=\lfloor n/m \rfloor,0\leqslant r=n\bmod m<m q=⌊n/m⌋,0⩽r=nmodm<m, 则
    ⌊ n + m − 1 m ⌋ − ⌊ n m ⌋ = ⌊ m q + m + r − 1 m ⌋ − ⌊ m q + r m ⌋ = ⌊ r + m − 1 m ⌋ − ⌊ r m ⌋ = ⌊ r + m − 1 m ⌋ = ⌊ n m o d m + m − 1 m ⌋ = { 0 , 若  n m o d m = 0 , 1 , 若  n m o d m > 0. \begin{aligned} \left\lfloor \frac{n+m-1}{m} \right\rfloor-\left\lfloor \frac nm\right\rfloor &=\left\lfloor \frac{mq+m+r-1}{m} \right\rfloor-\left\lfloor \frac {mq+r}m\right\rfloor\\ &=\left\lfloor \frac{r+m-1}{m} \right\rfloor-\left\lfloor \frac {r}m\right\rfloor\\ &=\left\lfloor \frac{r+m-1}{m} \right\rfloor\\ &=\left\lfloor \frac{n\bmod m+m-1}{m} \right\rfloor\\ &=\begin{cases} 0,&\text{ 若 }n\bmod m=0,\\ 1,&\text{ 若 }n\bmod m>0. \end{cases} \end{aligned} ⌊mn+m−1​⌋−⌊mn​⌋​=⌊mmq+m+r−1​⌋−⌊mmq+r​⌋=⌊mr+m−1​⌋−⌊mr​⌋=⌊mr+m−1​⌋=⌊mnmodm+m−1​⌋={0,1,​ 若 nmodm=0, 若 nmodm>0.​​

即得结论.

当然, 还有通过广义Ramsey定理证明的方法(鸽巢原理的推广), 可以参见3.

总的来看, 这个结论通过上面的近似分组问题就可以解释了.

ref


  1. 具体数学; ↩︎

  2. 取整函数 - 维基百科,自由的百科全书 (wikipedia.org); ↩︎

  3. 上取整与下取整的转换 - flyor - 博客园 (cnblogs.com); ↩︎ ↩︎

上下取整函数的关系以及一些重要性质(附证明)相关推荐

  1. C/C++ 取整函数 ceil()、floor()、trunc()

    向上取整函数 ceil() 向下取整函数 floor() 舍尾取整函数 trunc() 这三个函数都在头文件 math.h 中 floor(x)返回的是小于或等于x的最大整数. ceil(x)返回的是 ...

  2. paper 68 :MATLAB中取整函数(fix, floor, ceil, round)的使用

    MATLAB取整函数 1)fix(x) : 截尾取整. >> fix( [3.12 -3.12]) ans =      3    -3 (2)floor(x):不超过x 的最大整数.(高 ...

  3. python取整数_python 取整函数

    向下取整的运算称为Floor,用数学符号⌊⌋表示:向上取整的运算称为Ceiling,用数学符号⌈⌉表示.例如: ⌊59/60⌋=0 ⌈59/60⌉=1 ⌊-59/60⌋=-1 ⌈-59/60⌉=0 向 ...

  4. oracle取_后的数字,聊聊四种Oracle数字取整函数

    "四舍五入"是我们最早接触的数学概念之一.我们日常开发系统中,数字取整也是我们最常接触的一种需求样式.在财务相关系统中,四舍五入的算法有时候对系统用户造成巨大的影响. 在Oracl ...

  5. c四舍五入取整函数_学会这8个Excel函数,工作瞬间好轻松!

    感谢可爱的您抽出 . . 来阅读本文,记得关注哟~ 函数是excel中最重要的分析工具,下面8个(组)函数,是实际工作中最常用的,赶紧学会,工作起来更便利. 第1名Vlookup函数 用途:数据查找. ...

  6. php坐标轴取整,PHP取整函数:ceil,floor,round,intval的区别详细解析

    我们经常用到的PHP取整函数,主要是:ceil,floor,round,intval. ceil -- 进一法取整说明float ceil ( float value ) 返回不小于 value 的下 ...

  7. 下取整函数的含义_取整函数解读

    关于 [x] 以及 {x} 的性质与应用 摘 要: [ x ] 和 { x } 是非常重要的数论函数 , 其他许多数学分支都要涉及到,在国 内外的数学竞赛中也经常出现含有 [ x ] 和 { x } ...

  8. 的向上取整函数_计算机二级Excel常用函数解析

    决定为大家推点干货 让大家学习一下 Excel的函数应用 ABS绝对值 从最简单的开始 第一个是ABS函数 简而言之 就是取绝对值 作用就是 MAX&MIN函数 这两个函数是好哥们 也比较简单 ...

  9. 向上取整函数_向上取整函数ROUNDUP在BOM表里面的实际应用

    电子制造行业的Purchase.PMC等岗位从业人员在工作中都会遇到根椐SPQ/MOQ计算采购量的问题.例如:需求贴片电阻6K,贴片电阻SPQ/MOQ是5K,请问需要采购多少数量的贴片电阻? 通常的做 ...

最新文章

  1. 原创 | 看过《中国机长》,我开始关心航空预测性维修这件事了
  2. POJ 2155 Matrix 二维线段树
  3. PTGAN:针对行人重识别的生成对抗网络 | PaperDaily #36
  4. 用户特征工程详细解读
  5. 安防工业交换机将成为安防监控系统主要的传输设备
  6. 高吞吐低时延日志系统需要注意的方面
  7. 用代码实现task列表里面的Assigned To选择多个人
  8. BigDecimal 小数 浮点数 精度 财务计算
  9. C#使用mybatis学习笔记
  10. 路由器工作模式Classless与Classful实验分析
  11. Unicode字符集下UTF-8 、UTF-16编码和GBK(GB2312)字符集
  12. html中怎么做弹窗广告,基于JQuery实现页面定时弹出广告
  13. WordPress主题 Market 多用途,灵活,类似(ThemeForest)高级数码交易市场主题
  14. vue echarts 实现速度的那种进度蓄力效果
  15. 谷歌浏览器如何安装插件
  16. 机器人可操作度 matlab,双臂机器人运动学与可操作性及其优化的研究
  17. FLOPS和TOPS的区别 以及 算力的计算方法
  18. [WebApi]WebApi通过接口上传文件-单文件 多文件上传 文件下载
  19. 虚拟化技术的分类及介绍
  20. MySQL 8.0踩的坑

热门文章

  1. 最新AI产品经理求职动态:卡年龄、卡学历,这么卷,怎么办?
  2. 新天绿色能源与建投国融续签温室气体减排项目协议
  3. 西瓜视频怎么做伪原创
  4. 游戏电影——《落花辞》
  5. Python爬虫入门记录1.0:获取网站某板块首页面资讯文章标题
  6. iOS 开发AVFoundation系统原生二维码扫描实现
  7. 英语学习(四)动词(Verb)
  8. 用于使计算机发出嘟嘟声的宏命令,2012年计算机等级考试二级Access辅导笔记:Access宏的使用...
  9. ISO 8601中周数的处理及 Joda-Time 的使用
  10. ilm 和dlm差异_ILM是什么意思