关于整值函数的探讨(1)
在这个专题中,我们将探讨整值函数的底和顶,及其递归式与和式,学习将实数转换到整数的方法。
参考资料:《具体数学 第 2 2 2 版》
一、底和顶的性质与应用
对所有实数
x
x
x,底函数(
floor
\text{floor}
floor)和顶函数(
ceiling
\text{ceiling}
ceiling)的定义如下:
⌊
x
⌋
=
小于或等于
x
的最大整数
⌈
x
⌉
=
大于或等于
x
的最小整数
\begin{gather} \begin{split} \lfloor x \rfloor = 小于或等于 x 的最大整数 \\ \lceil x \rceil = 大于或等于 x 的最小整数 \end{split} \end{gather}
⌊x⌋=小于或等于x的最大整数⌈x⌉=大于或等于x的最小整数
1. 底和顶的基本性质
要熟悉底函数和顶函数,最好是了解它们的图形,其图形在直线
f
(
x
)
=
x
f(x) = x
f(x)=x 的上方和下方形成阶梯状的模式。
仔细审视这个图形,我们可以观察到关于底和顶的几个事实。
- 首先,由于底函数位于一次函数
f
(
x
)
=
x
f(x) = x
f(x)=x 上或者位于其下方,所以有
⌊
x
⌋
≤
x
\lfloor x \rfloor \le x
⌊x⌋≤x;类似地,有
⌈
x
⌉
≥
x
\lceil x \rceil \ge x
⌈x⌉≥x。这两个函数在整数点处的值正好相等,即:
⌊ x ⌋ = x ⟺ x 是整数 ⟺ ⌈ x ⌉ = x \lfloor x \rfloor = x \iff x 是整数 \iff \lceil x \rceil = x ⌊x⌋=x⟺x是整数⟺⌈x⌉=x - 此外,当它们不相等时,顶函数恰好比底函数大
1
1
1:
⌈ x ⌉ − ⌊ x ⌋ = [ x 不是整数 ] \begin{gather} \lceil x \rceil - \lfloor x \rfloor = [x 不是整数] \end{gather} ⌈x⌉−⌊x⌋=[x不是整数]如果我们将 f ( x ) = x f(x) = x f(x)=x 向下移动一个单位,它就完全位于底函数的下方,所以 x − 1 < ⌊ x ⌋ x - 1 < \lfloor x \rfloor x−1<⌊x⌋;类似地,有 x + 1 > ⌈ x ⌉ x + 1 > \lceil x \rceil x+1>⌈x⌉。把这些结果组合起来就有
x − 1 < ⌊ x ⌋ ≤ x ≤ ⌈ x ⌉ < x + 1 \begin{gather} x - 1 < \lfloor x \rfloor \le x \le \lceil x \rceil < x + 1 \end{gather} x−1<⌊x⌋≤x≤⌈x⌉<x+1 - 最后,这些函数关于两个坐标轴互为反射:
⌊ − x ⌋ = − ⌈ x ⌉ ; ⌈ − x ⌉ = − ⌊ x ⌋ \begin{gather} \lfloor -x \rfloor = -\lceil x \rceil; \lceil -x \rceil = -\lfloor x \rfloor \end{gather} ⌊−x⌋=−⌈x⌉;⌈−x⌉=−⌊x⌋从而每一个记号都可以用另一个记号来表示。
为了实实在在地证明底函数和顶函数的性质,而不只是从图形上来观察这样的事实,运用下面这四条法则会特别有用,我们假设
n
n
n 是整数,
x
x
x 是实数:
⌊
x
⌋
=
n
⟺
n
≤
x
<
n
+
1
,
(
a
)
⌊
x
⌋
=
n
⟺
x
−
1
<
n
≤
x
,
(
b
)
⌈
x
⌉
=
n
⟺
n
−
1
<
x
≤
n
,
(
c
)
⌈
x
⌉
=
n
⟺
x
≤
n
<
x
+
1
,
(
d
)
\begin{gather} \begin{split} \lfloor x \rfloor = n \iff n \le x < n + 1,(a) \\ \lfloor x \rfloor = n \iff x - 1 < n \le x,(b)\\ \lceil x \rceil = n \iff n - 1 < x \le n,(c)\\ \lceil x \rceil = n \iff x \le n < x + 1,(d) \end{split} \end{gather}
⌊x⌋=n⟺n≤x<n+1,(a)⌊x⌋=n⟺x−1<n≤x,(b)⌈x⌉=n⟺n−1<x≤n,(c)⌈x⌉=n⟺x≤n<x+1,(d)由法则
(
5
a
)
(5a)
(5a) 可以得到不等式
⌊
x
⌋
+
n
≤
x
+
n
<
⌊
x
⌋
+
n
+
1
\lfloor x \rfloor + n \le x + n < \lfloor x \rfloor + n + 1
⌊x⌋+n≤x+n<⌊x⌋+n+1,也就是说我们有可能将一个整数项移进或者移出底:
⌊
x
+
n
⌋
=
⌊
x
⌋
+
n
,
n
为整数
\begin{gather} \lfloor x + n \rfloor = \lfloor x \rfloor + n,n 为整数 \end{gather}
⌊x+n⌋=⌊x⌋+n,n为整数类似地,可以得到
⌈
x
+
n
⌉
=
⌈
x
⌉
+
n
\lceil x + n \rceil = \lceil x \rceil + n
⌈x+n⌉=⌈x⌉+n,
n
n
n 为整数。可惜的是,我们并不能将一个常数因子移出去,这就意味着我们在运算中通常要避开比较死板的底和顶,或者在底和顶存在时能证明出一些结论。事实表明,底和顶在许多情况下是多余的,因而我们可以随意插入或者去掉它们。例如,实数与整数之间的任何不等式都等价于整数之间的一个关于底或者顶的不等式:
⌊
x
⌋
<
n
⟺
x
<
n
,
(
a
)
n
<
⌈
x
⌉
⟺
n
<
x
,
(
b
)
⌈
x
⌉
≤
n
⟺
x
≤
n
,
(
c
)
n
≤
⌊
x
⌋
⟺
n
≤
x
,
(
d
)
\begin{gather} \begin{split} \lfloor x \rfloor < n \iff x < n,(a) \\ n < \lceil x \rceil \iff n < x,(b) \\ \lceil x \rceil \le n \iff x \le n,(c) \\ n \le \lfloor x \rfloor \iff n \le x,(d) \end{split} \end{gather}
⌊x⌋<n⟺x<n,(a)n<⌈x⌉⟺n<x,(b)⌈x⌉≤n⟺x≤n,(c)n≤⌊x⌋⟺n≤x,(d)
x
x
x 和
⌊
x
⌋
\lfloor x \rfloor
⌊x⌋ 之间的差称为
x
x
x 的分数部分(
fractional part
\text{fractional part}
fractional part):
{
x
}
=
x
−
⌊
x
⌋
\begin{gather} \{x\} = x - \lfloor x \rfloor \end{gather}
{x}=x−⌊x⌋我们有时称
⌊
x
⌋
\lfloor x \rfloor
⌊x⌋ 是
x
x
x 的整数部分(
integer part
\text{integer part}
integer part)。
如果 n n n 是任意实数,那么恒等式 ( 6 ) (6) (6) 并不成立,但是我们可以推出,对于 ⌊ x + y ⌋ \lfloor x + y \rfloor ⌊x+y⌋,一般来说只有两种可能性:如果我们记 x = ⌊ x ⌋ + { x } x = \lfloor x \rfloor + \{x\} x=⌊x⌋+{x} 以及 y = ⌊ y ⌋ + { y } y = \lfloor y \rfloor + \{y\} y=⌊y⌋+{y},就有 ⌊ x + y ⌋ = ⌊ x ⌋ + ⌊ y ⌋ + ⌊ { x } + { y } ⌋ \lfloor x + y \rfloor = \lfloor x \rfloor + \lfloor y \rfloor + \lfloor\{x\} + \{y\}\rfloor ⌊x+y⌋=⌊x⌋+⌊y⌋+⌊{x}+{y}⌋,又由于 0 ≤ { x } + { y } < 2 0 \le \{x\} + \{y\} < 2 0≤{x}+{y}<2,于是 ⌊ x + y ⌋ = ⌊ x ⌋ + ⌊ y ⌋ \lfloor x + y \rfloor = \lfloor x \rfloor + \lfloor y \rfloor ⌊x+y⌋=⌊x⌋+⌊y⌋ 或者 ⌊ x + y ⌋ = ⌊ x ⌋ + ⌊ y ⌋ + 1 \lfloor x + y \rfloor = \lfloor x \rfloor + \lfloor y \rfloor + 1 ⌊x+y⌋=⌊x⌋+⌊y⌋+1。
2. 底和顶的简单应用
-
让我们从一个容易解决的问题开始: ⌈ lg 35 ⌉ \lceil \lg 35 \rceil ⌈lg35⌉ 等于什么?其中 lg \lg lg 表示以 2 2 2 为底的对数。由于 2 5 < 35 ≤ 2 6 2^5 < 35 \le 2^6 25<35≤26,我们可以取对数得到 5 < lg 35 ≤ 6 5 < \lg 35 \le 6 5<lg35≤6,由关系式 ( 5 c ) (5c) (5c) 可以得到 ⌈ lg 35 ⌉ = 6 \lceil \lg 35 \rceil = 6 ⌈lg35⌉=6。
我们注意到, 35 35 35 写成二进制时有 6 6 6 位: 35 = ( 100011 ) 2 35 = (100011)_2 35=(100011)2,所以 ⌈ lg n ⌉ \lceil \lg n \rceil ⌈lgn⌉ 是否表示了 n n n 写成二进制时的长度呢?并不见得,比如我们需要 6 6 6 位来表示 32 = ( 100000 ) 2 32 = (100000)_2 32=(100000)2,然而 ⌈ lg 32 ⌉ = 5 \lceil \lg 32 \rceil = 5 ⌈lg32⌉=5,因此当 n n n 是 2 2 2 的幂时上述结论会失效。
意识到写出每一个满足 2 m − 1 ≤ n < 2 m 2^{m - 1} \le n < 2^m 2m−1≤n<2m 的数 n n n 要用 m m m 位,由 ( 5 a ) (5a) (5a) 知, m − 1 = ⌊ lg n ⌋ m - 1 = \lfloor \lg n \rfloor m−1=⌊lgn⌋,因此 m = ⌊ lg n ⌋ + 1 m = \lfloor \lg n \rfloor + 1 m=⌊lgn⌋+1。也就是说,对所有 n > 0 n > 0 n>0,需要 ⌊ lg n ⌋ + 1 \lfloor \lg n \rfloor + 1 ⌊lgn⌋+1 位将 n n n 表示成二进制数。同理我们也可以由 2 m − 1 < n + 1 ≤ 2 m 2^{m - 1} < n + 1 \le 2^m 2m−1<n+1≤2m 推导得到答案 ⌈ lg ( n + 1 ) ⌉ \lceil \lg(n + 1) \rceil ⌈lg(n+1)⌉。 -
接下来我们研究用多个底或者顶的表达式。比如 ⌈ ⌊ x ⌋ ⌉ \lceil \lfloor x \rfloor \rceil ⌈⌊x⌋⌉ 是什么?由于 ⌊ x ⌋ \lfloor x \rfloor ⌊x⌋ 是整数,因此 ⌈ ⌊ x ⌋ ⌉ \lceil \lfloor x \rfloor \rceil ⌈⌊x⌋⌉ 就是 ⌊ x ⌋ \lfloor x \rfloor ⌊x⌋。对于最内层是 ⌊ x ⌋ \lfloor x \rfloor ⌊x⌋ 而外面包围有任意多个底或者顶的任何其他表达式也有同样结论。不过我们要做的是,证实或者证伪断言:
⌊ ⌊ x ⌋ ⌋ = ⌊ x ⌋ ,实数 x ≥ 0 \begin{gather} \lfloor \sqrt{ \lfloor x \rfloor } \rfloor = \lfloor \sqrt{x} \rfloor,实数 x \ge 0 \end{gather} ⌊⌊x⌋⌋=⌊x⌋,实数x≥0当 x x x 为整数时等号显然成立,因为 x = ⌊ x ⌋ x = \lfloor x \rfloor x=⌊x⌋。并且可以验证等式在 π = 3.14159 ⋯ , e = 2.71828 ⋯ \pi = 3.14159 \cdots,e = 2.71828 \cdots π=3.14159⋯,e=2.71828⋯ 以及 ϕ = ( 1 + 5 ) / 2 = 1.61803 ⋯ \phi = (1 + \sqrt{5}) / 2 = 1.61803 \cdots ϕ=(1+5)/2=1.61803⋯ 这些特殊情形下均成立。我们未能发现一个反例,这表明在一般情形下上述断言可能是成立的,故而我们尝试来证明它。
当面对证实或者证伪的时候,通常先尝试用一个反例来推翻它更好一些,有两点原因:否定可能更容易一些,因为只需要一个反例;挑毛病会激发我们的创造精神,即便给定的结论为真,如果我们能看出为什么不可能存在反例,那么搜寻反例的过程也往往能将我们引向证明。
对于上述断言,一种可能的做法是:用某种方法去掉左式外层的底和平方根,然后去掉内层的底,再将外层的符号加回去以得到右式。设 m = ⌊ ⌊ x ⌋ ⌋ m = \lfloor \sqrt{ \lfloor x \rfloor } \rfloor m=⌊⌊x⌋⌋ 并利用 ( 5 a ) (5a) (5a) 得到 m ≤ ⌊ x ⌋ < m + 1 m \le \sqrt{ \lfloor x \rfloor } < m + 1 m≤⌊x⌋<m+1,这就去掉了外层的底,并且没有丢失信息。由于三个表达式都是非负的,于是平方后得到 m 2 ≤ ⌊ x ⌋ < ( m + 1 ) 2 m^2 \le \lfloor x \rfloor < (m + 1)^2 m2≤⌊x⌋<(m+1)2,去掉了平方根。对左边的不等式利用 ( 7 d ) (7d) (7d),对右边的不等式利用 ( 7 a ) (7a) (7a): m 2 ≤ x < ( m + 1 ) 2 m^2 \le x < (m + 1)^2 m2≤x<(m+1)2,去掉了内层的底。然后取平方根得到 m ≤ x < m + 1 m \le \sqrt{x} < m + 1 m≤x<m+1,利用 ( 5 a ) (5a) (5a) 得到 m = ⌊ x ⌋ m = \lfloor \sqrt{x} \rfloor m=⌊x⌋。从而 ⌊ ⌊ x ⌋ ⌋ = m = ⌊ x ⌋ \lfloor \sqrt{ \lfloor x \rfloor } \rfloor = m = \lfloor \sqrt{x} \rfloor ⌊⌊x⌋⌋=m=⌊x⌋,结论为真。类似地,我们可以证明 ⌈ ⌈ x ⌉ ⌉ = ⌈ x ⌉ ,实数 x ≥ 0 \lceil \sqrt{ \lceil x \rceil } \rceil = \lceil \sqrt{x} \rceil,实数 x \ge 0 ⌈⌈x⌉⌉=⌈x⌉,实数x≥0。 -
我们可以推广上述讨论的方式并用来证明更多的东西:设 f ( x ) f(x) f(x) 是任意一个具有如下性质且在一个实数区间连续的单调递增函数: f ( x ) = f(x) = f(x)= 整数 ⟹ x = \implies x = ⟹x= 整数。于是,只要 f ( x ) f(x) f(x)、 f ( ⌊ x ⌋ ) f(\lfloor x \rfloor) f(⌊x⌋) 和 f ( ⌈ x ⌉ ) f(\lceil x \rceil) f(⌈x⌉) 都有定义,则有
⌊ f ( x ) ⌋ = ⌊ f ( ⌊ x ⌋ ) ⌋ 和 ⌈ f ( x ) ⌉ = ⌈ f ( ⌈ x ⌉ ) ⌉ \begin{gather} \lfloor f(x) \rfloor = \lfloor f(\lfloor x \rfloor) \rfloor 和 \lceil f(x) \rceil = \lceil f(\lceil x \rceil) \rceil \end{gather} ⌊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(\lceil x \rceil) f(x)<f(⌈x⌉),从而 ⌈ f ( x ) ⌉ ≤ ⌈ f ( ⌈ x ⌉ ) ⌉ \lceil f(x) \rceil \le \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⌉)⌉,则必定存在一个数 y y y,使得 x ≤ y < ⌈ x ⌉ x \le y < \lceil x \rceil x≤y<⌈x⌉ 且 f ( y ) = f ( ⌈ x ⌉ ) f(y) = f(\lceil x \rceil) f(y)=f(⌈x⌉),因为 f f f 是连续的。鉴于 f f f 的单调性, y y y 必然是一个整数,但是不可能有一个整数严格位于 ⌊ x ⌋ \lfloor x \rfloor ⌊x⌋ 和 ⌈ x ⌉ \lceil x \rceil ⌈x⌉ 之间,于是必定有 ⌈ f ( x ) ⌉ = ⌈ f ( ⌈ x ⌉ ) ⌉ \lceil f(x) \rceil = \lceil f(\lceil x \rceil) \rceil ⌈f(x)⌉=⌈f(⌈x⌉)⌉。
这个定理有一个重要特例:如果 m m m 和 n n n 是整数且分母 n n n 为正,则
⌊ x + m n ⌋ = ⌊ ⌊ x ⌋ + m n ⌋ 和 ⌈ x + m n ⌉ = ⌈ ⌈ x ⌉ + m n ⌉ \begin{gather} \lfloor \frac{x + m}{n} \rfloor = \lfloor \frac{\lfloor x \rfloor + m}{n} \rfloor 和 \lceil \frac{x + m}{n} \rceil = \lceil \frac{\lceil x \rceil + m}{n} \rceil \end{gather} ⌊nx+m⌋=⌊n⌊x⌋+m⌋和⌈nx+m⌉=⌈n⌈x⌉+m⌉例如,令 m = 0 m = 0 m=0,则有 ⌊ ⌊ ⌊ x / 10 ⌋ / 10 ⌋ / 10 ⌋ = ⌊ x / 1000 ⌋ \lfloor \lfloor \lfloor x / 10 \rfloor /10 \rfloor / 10 \rfloor = \lfloor x / 1000 \rfloor ⌊⌊⌊x/10⌋/10⌋/10⌋=⌊x/1000⌋,即三次用 10 10 10 来除并抛弃个位数,与用 1000 1000 1000 来除并去掉余数,结果是一样的。 -
接下来我们尝试证实或者证伪另一个命题: ⌈ ⌊ x ⌋ ⌉ = ⌈ x ⌉ ,实数 x ≥ 0 \lceil \sqrt{ \lfloor x \rfloor } \rceil = \lceil \sqrt{x} \rceil,实数 x \ge 0 ⌈⌊x⌋⌉=⌈x⌉,实数x≥0。它对 x = π x = \pi x=π 和 x = e x = e x=e 成立,对 x = ϕ x = \phi x=ϕ 不成立,因此该命题一般不为真。
进一步探讨之前,我们先讨论一下数学书中可能会出现的不同水平的问题。- 【水平 1 1 1】给定一个显式对象 x x x 和一个显式性质 P ( x ) P(x) P(x),证明 P ( x ) P(x) P(x) 为真。即对于所宣称的某个事实寻求一个证明。
- 【水平 2 2 2】给定一个显式集合 X X X 和一个显式性质 P ( x ) P(x) P(x),证明 P ( x ) P(x) P(x) 对所有 x ∈ X x \in X x∈X 为真。问题仍然在于寻求一个证明,但是这里的证明必须具有一般性,也就是要从做算术转变为做代数。
- 【水平 3 3 3】给定一个显式集合 X X X 和一个显式性质 P ( x ) P(x) P(x),证明或推翻 P ( x ) P(x) P(x) 对所有 x ∈ X x \in X x∈X 为真。这里附加了一个不确定性水平,更接近于数学家们通常面对的真实情形:写进书中的结论都倾向于是正确的,但是新的事物必须以挑剔怀疑的眼光来审视。
- 【水平 4 4 4】给定一个显式集合 X X X 和一个显式性质 P ( x ) P(x) P(x),寻求一个使 P ( x ) P(x) P(x) 为真的充要条件 Q ( x ) Q(x) Q(x)。当然我们可以取 Q ( x ) = P ( x ) Q(x) = P(x) Q(x)=P(x),但是问题所隐含的要求是寻求一个尽可能简单的条件,并且必须给出证明: P ( x ) P(x) P(x) 为真当且仅当 Q ( x ) Q(x) Q(x) 为真。
- 【水平 5 5 5】给定一个显式集合 X X X,寻求其元素的一个有趣的性质 P ( x ) P(x) P(x)。这是一个非常恐怖的纯粹研究领域。
-
接下来我们将最后那个问题从水平 3 3 3 变成水平 4 4 4:使得 ⌈ ⌊ x ⌋ ⌉ = ⌈ x ⌉ \lceil \sqrt{ \lfloor x \rfloor } \rceil = \lceil \sqrt{x} \rceil ⌈⌊x⌋⌉=⌈x⌉ 成立的充要条件是什么?我们已经知道,当 x = π x = \pi x=π 时等式成立,当 x = ϕ x = \phi x=ϕ 时等式不成立。进一步探究可以发现当 m 2 < x < m 2 + 1 m^2 < x < m^2 + 1 m2<x<m2+1 时, ⌈ ⌊ x ⌋ ⌉ = m \lceil \sqrt{ \lfloor x \rfloor } \rceil = m ⌈⌊x⌋⌉=m,而 ⌈ x ⌉ = m + 1 \lceil \sqrt{x} \rceil = m + 1 ⌈x⌉=m+1,即等式不成立,此外所有情况等式均成立。因此,使得 ⌈ ⌊ x ⌋ ⌉ = ⌈ x ⌉ \lceil \sqrt{ \lfloor x \rfloor } \rceil = \lceil \sqrt{x} \rceil ⌈⌊x⌋⌉=⌈x⌉ 成立的充要条件是: x x x 是整数,或者 ⌊ x ⌋ \sqrt{ \lfloor x \rfloor } ⌊x⌋ 不是整数。
-
下一个问题是:对于区间( interval \text{interval} interval) [ α . . β ] , [ α . . β ) , ( α . . β ] , ( α . . β ) [\alpha .. \beta], [\alpha .. \beta), (\alpha .. \beta], (\alpha .. \beta) [α..β],[α..β),(α..β],(α..β),它们分别包含了多少个整数?其中 α , β \alpha, \beta α,β 均为实数。 由于半开区间是可加的,故而我们从半开区间开始探究。如果 α \alpha α 和 β \beta β 是整数,在 α ≤ β \alpha \le \beta α≤β 的情况下, [ α . . β ) [\alpha .. \beta) [α..β) 包含 β − α \beta - \alpha β−α 个整数 α , α + 1 , ⋯ , β − 1 \alpha, \alpha + 1, \cdots, \beta - 1 α,α+1,⋯,β−1。类似地, ( α . . β ] (\alpha .. \beta] (α..β] 也包含 β − α \beta - \alpha β−α 个整数。根据公式 ( 7 ) (7) (7),当 n n n 是整数时,有
α ≤ n < β ⟺ ⌈ α ⌉ ≤ n < ⌈ β ⌉ α < n ≤ β ⟺ ⌊ α ⌋ < n ≤ ⌊ β ⌋ \begin{split} \alpha \le n < \beta \iff \lceil \alpha \rceil \le n < \lceil \beta \rceil \\ \alpha < n \le \beta \iff \lfloor \alpha \rfloor < n \le \lfloor \beta \rfloor \end{split} α≤n<β⟺⌈α⌉≤n<⌈β⌉α<n≤β⟺⌊α⌋<n≤⌊β⌋于是区间 [ α . . β ) [\alpha .. \beta) [α..β) 恰好包含 ⌈ β ⌉ − ⌈ α ⌉ \lceil \beta \rceil - \lceil \alpha \rceil ⌈β⌉−⌈α⌉ 个整数,而 ( α . . β ] (\alpha .. \beta] (α..β] 则包含 ⌊ β ⌋ − ⌊ α ⌋ \lfloor \beta \rfloor - \lfloor \alpha \rfloor ⌊β⌋−⌊α⌋ 个整数。这是一个我们希望引入底括号和顶括号的例子。
在底和顶的选择上有一种方法,左闭右开区间比左开右闭区间略微常用一些,底也比顶更常用,根据墨菲定律,正确的法则与我们希望的恰好相反 —— 顶用于 [ α . . β ) [\alpha .. \beta) [α..β),而底用于 ( α . . β ] (\alpha .. \beta] (α..β]。
类似的分析表明,闭区间 [ α . . β ] [\alpha .. \beta] [α..β] 包含 ⌊ β ⌋ − ⌈ α ⌉ + 1 \lfloor \beta \rfloor - \lceil \alpha \rceil + 1 ⌊β⌋−⌈α⌉+1 个整数,而开区间 ( α . . β ) (\alpha .. \beta) (α..β) 包含 ⌈ β ⌉ − ⌊ α ⌋ − 1 \lceil \beta \rceil - \lfloor \alpha \rfloor - 1 ⌈β⌉−⌊α⌋−1 个整数。不过对于开区间我们要限制 α ≠ β \alpha \ne \beta α=β,以此来避免出现空的区间 ( α . . α ) (\alpha .. \alpha) (α..α) 包含 − 1 -1 −1 个整数这种违背常理的断言。
3. 轮盘赌问题
现在我们来到了具体数学俱乐部的赌场之中,在我们面前的是一个巨大的轮盘赌轮,它有一千个投币口,标号 1 1 1 到 1000 1000 1000。如果在一次旋转中出现的数 n n n 能被它的立方根的底整除,即 ⌊ n 3 ⌋ ∣ n \lfloor \sqrt[3]{n} \rfloor | n ⌊3n⌋∣n,那么它就是一个赢点,庄家赔付给我们 5 5 5 美元;否则它就是一个输点,我们就需要赔付 1 1 1 美元。如果玩这个游戏,我们能指望赢钱吗?
我们可以计算平均赢率,也就是每玩一次我们将会赢(输)的量,首先计算赢点的个数
W
W
W 以及输点的个数
L
=
1000
−
W
L = 1000 - W
L=1000−W。如果在
1000
1000
1000 次游戏中每个数都出现一次,我们就赢得
5
W
5W
5W 美元而损失
L
L
L 美元,故而平均赢率将是
5
W
−
L
1000
=
5
W
−
(
1000
−
W
)
1000
=
6
W
−
1000
1000
\frac{5W - L}{1000} = \frac{5W - (1000 - W)}{1000} = \frac{6W - 1000}{1000}
10005W−L=10005W−(1000−W)=10006W−1000如果有
167
167
167 个或者更多的赢点,我们就占优,反之庄家占优。
在
1
1
1 到
1000
1000
1000 中,我们如何来计算赢点的个数呢?从
1
1
1 一直到
2
3
−
1
=
7
2^3 - 1 = 7
23−1=7 全都是赢点,因为对其中每一个数都有
⌊
n
3
⌋
=
1
\lfloor \sqrt[3]{n} \rfloor = 1
⌊3n⌋=1。从数
2
3
=
8
2^3 = 8
23=8 一直到
3
3
−
1
=
26
3^3 - 1 = 26
33−1=26 中仅有偶数是赢点。在数
3
3
=
27
3^3 = 27
33=27 一直到
4
3
−
1
=
63
4^3 - 1 = 63
43−1=63 中,仅有那些被
3
3
3 整除的数是赢点。如此等等。整个模式结构可以系统地加以分析:
W
=
∑
n
=
1
1000
[
n
是赢点
]
=
∑
1
≤
n
≤
1000
[
⌊
n
3
⌋
∣
n
]
=
∑
k
,
n
[
k
=
⌊
n
3
⌋
]
[
k
∣
n
]
[
1
≤
n
≤
1000
]
=
∑
k
,
m
,
n
[
k
3
≤
n
<
(
k
+
1
)
3
]
[
n
=
k
m
]
[
1
≤
n
≤
1000
]
=
1
+
∑
k
,
m
[
k
3
≤
k
m
<
(
k
+
1
)
3
]
[
1
≤
k
<
10
]
(
把
n
=
1000
的情况单独拿了出来
)
=
1
+
∑
k
,
m
[
m
∈
[
k
2
.
.
(
k
+
1
)
3
/
k
)
]
[
1
≤
k
<
10
]
=
1
+
∑
1
≤
k
<
10
(
⌈
k
2
+
3
k
+
3
+
1
/
k
⌉
−
⌈
k
2
⌉
)
(
区间
[
k
2
.
.
(
k
+
1
)
3
/
k
)
包含的整数个数
)
=
1
+
∑
1
≤
k
<
10
(
3
k
+
4
)
=
1
+
7
+
31
2
×
9
=
172
\begin{aligned} W & = \sum_{n = 1}^{1000} [n 是赢点] \\ & = \sum_{1 \le n \le 1000} [ \lfloor \sqrt[3]{n} \rfloor | n ] \\ & = \sum_{k, n} [k = \lfloor \sqrt[3]{n} \rfloor ] [k | n] [1 \le n \le 1000] \\ & = \sum_{k, m, n} [k^3 \le n < (k + 1)^3] [n = km] [1 \le n \le 1000] \\ & = 1 + \sum_{k, m} [k^3 \le km < (k + 1)^3] [1 \le k < 10] & (把 n = 1000 的情况单独拿了出来)\\ & = 1 + \sum_{k, m} [m \in [ k^2 .. (k + 1)^3 / k ) ] [1 \le k < 10] \\ & = 1 + \sum_{1 \le k < 10} \big( \lceil k^2 + 3k + 3 + 1 / k \rceil - \lceil k^2 \rceil \big) & (区间 [k^2 .. (k + 1)^3 / k) 包含的整数个数) \\ & = 1 + \sum_{1 \le k < 10} (3k + 4) = 1 + \frac{7 + 31}{2} \times 9 = 172 \end{aligned}
W=n=1∑1000[n是赢点]=1≤n≤1000∑[⌊3n⌋∣n]=k,n∑[k=⌊3n⌋][k∣n][1≤n≤1000]=k,m,n∑[k3≤n<(k+1)3][n=km][1≤n≤1000]=1+k,m∑[k3≤km<(k+1)3][1≤k<10]=1+k,m∑[m∈[k2..(k+1)3/k)][1≤k<10]=1+1≤k<10∑(⌈k2+3k+3+1/k⌉−⌈k2⌉)=1+1≤k<10∑(3k+4)=1+27+31×9=172(把n=1000的情况单独拿了出来)(区间[k2..(k+1)3/k)包含的整数个数)因此每次游戏的平均赢率的公式化简为
(
6
×
172
−
1000
)
/
1000
=
0.032
(6 \times 172 - 1000) / 1000 = 0.032
(6×172−1000)/1000=0.032 美元,于是我们可以指望在做了
100
100
100 次每次
1
1
1 美元的赌博之后能挣到大约
3.2
3.2
3.2 美元。
我们假设将
1000
1000
1000 改为
1
0
6
10^6
106,或者换成一个更大的数
N
N
N,现在有多少个赢点呢?同样的推理方法仍然适用,不过我们要更仔细地处理
k
k
k 的最大值,为方便起见将它记为
K
K
K:
K
=
⌊
N
3
⌋
K = \lfloor \sqrt[3]{N} \rfloor
K=⌊3N⌋。对于一般的
N
N
N,赢点的总数是
W
=
∑
1
≤
k
<
K
(
3
k
+
4
)
+
∑
m
[
K
3
≤
K
m
≤
N
]
=
1
2
(
7
+
3
K
+
1
)
(
K
−
1
)
+
∑
m
[
m
∈
[
K
2
.
.
N
/
K
]
]
=
3
2
K
2
+
5
2
K
−
4
+
∑
m
[
m
∈
[
K
2
.
.
N
/
K
]
]
\begin{aligned} W & = \sum_{1 \le k < K} (3k + 4) + \sum_{m} [K^3 \le Km \le N] \\ & = \frac{1}{2} (7 + 3K + 1)(K - 1) + \sum_{m} [m \in [K^2 .. N / K] ] \\ & = \frac{3}{2} K^2 + \frac{5}{2} K - 4 + \sum_{m} [m \in [K^2 .. N / K] ] \end{aligned}
W=1≤k<K∑(3k+4)+m∑[K3≤Km≤N]=21(7+3K+1)(K−1)+m∑[m∈[K2..N/K]]=23K2+25K−4+m∑[m∈[K2..N/K]]剩下的那个和式是
⌊
N
/
K
⌋
−
⌈
K
2
⌉
+
1
=
⌊
N
/
K
⌋
−
K
2
+
1
\lfloor N / K \rfloor - \lceil K^2 \rceil + 1 = \lfloor N / K \rfloor - K^2 + 1
⌊N/K⌋−⌈K2⌉+1=⌊N/K⌋−K2+1,故而公式
W
=
⌊
N
/
K
⌋
+
1
2
K
2
+
5
2
K
−
3
,
K
=
⌊
N
3
⌋
\begin{gather} W = \lfloor N / K \rfloor + \frac{1}{2} K^2 + \frac{5}{2} K - 3, & K = \lfloor \sqrt[3]{N} \rfloor \end{gather}
W=⌊N/K⌋+21K2+25K−3,K=⌊3N⌋给出了轮盘大小为
N
N
N 的一般答案。这个公式的前两项近似等于
N
2
/
3
+
1
2
N
2
/
3
=
3
2
N
2
/
3
N^{2/3} + \frac{1}{2} N^{2/3} = \frac{3}{2} N^{2/3}
N2/3+21N2/3=23N2/3,当
N
N
N 很大时,其他项相比要小得多。
4. 谱
我们定义,一个实数
α
\alpha
α 的谱(
spectrum
\text{spectrum}
spectrum)是整数组成的一个无限多重集合:
Spec
(
α
)
=
{
⌊
α
⌋
,
⌊
2
α
⌋
,
⌊
3
α
⌋
,
⋯
}
\text{Spec}(\alpha) = \{\lfloor \alpha \rfloor , \lfloor 2\alpha \rfloor , \lfloor3 \alpha \rfloor , \cdots \}
Spec(α)={⌊α⌋,⌊2α⌋,⌊3α⌋,⋯}例如,
1
/
2
1/2
1/2 的谱的开头部分是
{
0
,
1
,
1
,
2
,
2
,
3
,
3
,
⋯
}
\{ 0, 1, 1, 2, 2, 3, 3, \cdots \}
{0,1,1,2,2,3,3,⋯}。
容易证明,没有两个谱是相等的,也就是说, α ≠ β \alpha \ne \beta α=β 就意味着 Spec ( α ) ≠ Spec ( β ) \text{Spec}(\alpha) \ne \text{Spec} (\beta) Spec(α)=Spec(β)。不失一般性,假设 α < β \alpha < \beta α<β,就存在一个正整数 m m m 使得 m ( β − α ) ≥ 1 m(\beta - \alpha) \ge 1 m(β−α)≥1。(事实上,任何一个 m ≥ ⌈ 1 / ( β − α ) ⌉ m \ge \lceil 1 / (\beta - \alpha) \rceil m≥⌈1/(β−α)⌉ 都行)从而 m β − m α ≥ 1 m \beta - m \alpha \ge 1 mβ−mα≥1,且 ⌊ m β ⌋ > ⌊ m α ⌋ \lfloor m \beta \rfloor > \lfloor m \alpha \rfloor ⌊mβ⌋>⌊mα⌋。于是谱 Spec ( β ) \text{Spec} (\beta) Spec(β) 有少于 m m m 个元素 ≤ ⌊ m α ⌋ \le \lfloor m \alpha \rfloor ≤⌊mα⌋,而 Spec ( α ) \text{Spec} (\alpha) Spec(α) 至少有 m m m 个这样的元素。
考虑两个多重集合
Spec
(
2
)
=
{
1
,
2
,
4
,
5
,
7
,
8
,
9
,
11
,
12
,
14
,
15
,
16
,
18
,
19
,
21
,
22
,
24
,
⋯
}
Spec
(
2
+
2
)
=
{
3
,
6
,
10
,
13
,
17
,
20
,
23
,
27
,
30
,
34
,
37
,
40
,
44
,
47
,
51
,
⋯
}
\text{Spec} (\sqrt{2}) = \{ 1, 2, 4, 5, 7, 8, 9, 11, 12, 14, 15, 16, 18, 19, 21, 22, 24, \cdots \} \\ \text{Spec} (2 + \sqrt{2}) = \{ 3, 6, 10, 13, 17, 20, 23, 27, 30, 34, 37, 40, 44, 47, 51, \cdots \}
Spec(2)={1,2,4,5,7,8,9,11,12,14,15,16,18,19,21,22,24,⋯}Spec(2+2)={3,6,10,13,17,20,23,27,30,34,37,40,44,47,51,⋯}根据公式
(
6
)
(6)
(6),
Spec
(
2
+
2
)
\text{Spec} (2 + \sqrt{2})
Spec(2+2) 的第
n
n
n 个元素恰好比
Spec
(
2
)
\text{Spec} (\sqrt{2})
Spec(2) 的第
n
n
n 个元素多
2
n
2n
2n。仔细观察还可以发现:似乎从一个谱中消失的数都会在另一个谱中出现,但是没有任何一个数在两个谱中都出现! 也就是说,正整数是
Spec
(
2
)
\text{Spec} (\sqrt{2})
Spec(2) 和
Spec
(
2
+
2
)
\text{Spec} (2 + \sqrt{2})
Spec(2+2) 的不相交并集。我们说这些谱构成正整数的一个划分(
partition
\text{partition}
partition)。
为了证明上述结论,我们要分别计算两个谱中有多少个元素是
≤
n
\le n
≤n 的。如果对于每个
n
n
n,这样的数的总和是
n
n
n,这两个谱就的确给出了整数的划分。
设
α
\alpha
α 为正数。
Spec
(
α
)
\text{Spec} (\alpha)
Spec(α) 中
≤
n
\le n
≤n 的元素的个数是
N
(
α
,
n
)
=
∑
k
>
0
[
⌊
k
α
⌋
≤
n
]
=
∑
k
>
0
[
⌊
k
α
⌋
<
n
+
1
]
=
∑
k
>
0
[
k
α
<
n
+
1
]
=
∑
k
[
0
<
k
<
(
n
+
1
)
/
α
]
=
⌈
(
n
+
1
)
/
α
⌉
−
1
\begin{aligned} N(\alpha, n) &= \sum_{k > 0} [\lfloor k \alpha \rfloor \le n] \\ &= \sum_{k > 0} [ \lfloor k \alpha \rfloor < n + 1] \\ &= \sum_{k > 0} [k \alpha < n + 1] \\ &= \sum_k [0 < k < (n + 1) / \alpha] \\ &= \lceil (n + 1) / \alpha \rceil - 1 \end{aligned}
N(α,n)=k>0∑[⌊kα⌋≤n]=k>0∑[⌊kα⌋<n+1]=k>0∑[kα<n+1]=k∑[0<k<(n+1)/α]=⌈(n+1)/α⌉−1利用上述
N
(
α
,
n
)
N(\alpha, n)
N(α,n) 的公式,我们就可以通过检验是否对所有整数
n
>
0
n > 0
n>0 都有
N
(
2
,
n
)
+
N
(
2
+
2
,
n
)
=
n
N(\sqrt{2}, n) + N(2 + \sqrt{2}, n) = n
N(2,n)+N(2+2,n)=n 来检测
Spec
(
2
)
\text{Spec} (\sqrt{2})
Spec(2) 和
Spec
(
2
+
2
)
\text{Spec} (2 + \sqrt{2})
Spec(2+2) 是否给出正整数的划分:
⌈
n
+
1
2
⌉
−
1
+
⌈
n
+
1
2
+
2
⌉
−
1
=
n
⟺
⌊
n
+
1
2
⌋
+
⌊
n
+
1
2
+
2
⌋
=
n
⟺
n
+
1
2
−
{
n
+
1
2
}
+
n
+
1
2
+
2
−
{
n
+
1
2
+
2
}
=
n
\begin{split} \lceil \frac{n + 1}{\sqrt{2}} \rceil - 1 + \lceil \frac{n + 1}{2 + \sqrt{2}} \rceil - 1 = n \\ \iff \lfloor \frac{n + 1}{\sqrt{2}} \rfloor + \lfloor \frac{n + 1}{2 + \sqrt{2}} \rfloor = n \\ \iff \frac{n + 1}{\sqrt{2}} - \{ \frac{n + 1}{\sqrt{2}} \} + \frac{n + 1}{2 + \sqrt{2}} - \{ \frac{n + 1}{2 + \sqrt{2}} \} = n \end{split}
⌈2n+1⌉−1+⌈2+2n+1⌉−1=n⟺⌊2n+1⌋+⌊2+2n+1⌋=n⟺2n+1−{2n+1}+2+2n+1−{2+2n+1}=n由于
1
2
+
1
2
+
2
=
1
\frac{1}{\sqrt{2}} + \frac{1}{2 + \sqrt{2}} = 1
21+2+21=1,于是我们的条件就转化为检测是否对所有
n
>
0
n > 0
n>0 有
{
n
+
1
2
}
+
{
n
+
1
2
+
2
}
=
1
\{ \frac{n + 1}{\sqrt{2}} \} + \{ \frac{n + 1}{2 + \sqrt{2}} \} = 1
{2n+1}+{2+2n+1}=1,而这是和等于整数
n
+
1
n + 1
n+1 的两个非整数的数的分数部分,显然该等式对所有的
n
≥
0
n \ge 0
n≥0 恒成立,至此,证明完毕。