上下取整函数的关系以及一些重要性质(附证明)
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.
基本概念
這里的一些定義, 記號等均參考了具體數學.
取整函數
數的表示
設 x ∈ R x\in\mathbb R x∈R, 則
? x ? \lfloor x\rfloor ?x?表示 x x x的整數部分(integer part)
{ x } \{x\} {x}表示 x x x的分數部分(fractional part), (不與單元素集合混淆的情況下)
關系:
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.?
與整數的關系
? 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?.
? 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;
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.?
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
具體數學; ??
取整函數 - 維基百科,自由的百科全書 (wikipedia.org); ??
上取整與下取整的轉換 - flyor - 博客園 (cnblogs.com); ?? ??
總結
以上是生活随笔為你收集整理的上下取整函数的关系以及一些重要性质(附证明)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: spring boot高校二手教材管理平
- 下一篇: 机器学习面试题(转)