「具体数学」三:整值函数
底和顶
底和顶函数关于坐标轴互为反射
有可能将一个整数项移出(或移进)底(或顶)
但
\(x\)和\(\lfloor x \rfloor\)之间的差称为\(x\)的分数部分
有时称\(\lfloor x \rfloor\)是\(x\)的整数部分,因为\(x=\lfloor x \rfloor +\{x\}\)
底和顶的应用
因为\(\lfloor x\rfloor\)是整数,外面包含任意多个底或者顶也相同
证明或推翻:
因为我们找不到反例。。所以尝试证明:
如果借助微积分证明,可能会首先将\(x\)分解成整数部分和分数部分\(\lfloor x \rfloor+\{x\}=n+\theta\),再利用二项式定理将平方根展开:
这样不太好做
有一种可能的方法是:用某种方法去掉\(\lfloor \sqrt{\lfloor x\rfloor} \rfloor\)外层的底和平方根,然后去掉内层的底,接着再将外层的符号加回去以得到\(\lfloor\sqrt{x}\rfloor\)
设\(m=\lfloor \sqrt{\lfloor x\rfloor} \rfloor\),则有\(m\leq \sqrt{\lfloor x\rfloor}<m+1\)
由于所有信息都非负,将他们平方\(m^2\leq \lfloor x \rfloor (m+1)^2\)
这样就避免了平方根,同时底也可以去掉\(m^2\leq x < (m+1)^2\)
然后再回溯,先取平方根\(m\leq \sqrt{x}<m+1\)
此时
类似可以证明
我们可以推广这种想法并用来证明更多的东西:
设\(f(x)\)是任意一个具有如下性质且在一个实数区间连续的单调递增函数
(符号\(\Rightarrow\)表示蕴涵),于是只要\(f(x)、f(\lfloor x \rfloor)、f(\lceil x \rceil)\)都有定义,我们就有
和
对顶进行证明:
如果\(x=\lceil x \rceil\),那么显然
如果\(x<\lceil x \rceil\),那么\(f(x)<f(\lceil x \rceil)\),因为\(f\)递增,从而\(\lceil f(x) \rceil\leq \lceil f(\lceil x \rceil) \rceil\),因为\(\lceil \rceil\)非减
那么必定存在一个数\(y\),使得\(x\leq y<\lceil x \rceil\)以及\(f(y)=\lceil f(x) \rceil\),因为\(f\)是连续的
鉴于\(f\)的特殊性质,这个\(y\)是一个整数,但是不可能有一个整数严格位于\(\lfloor x \rfloor\)和\(\lceil x \rceil\)之间
这个矛盾就说明必定有\(\lceil f(x) \rceil=\lceil f(\lceil x \rceil) \rceil\)
这个定理的一个重要特例值得提出来加以注意:
如果\(m\)和\(n\)是整数且分母\(n\)为正,则
和
例如,令\(m=0\),就有
三次用\(10\)来除并抛弃个位数字,与用\(1000\)来除并去掉余数结果是一样的
现在,我们来尝试证明或推翻另一个问题:
它对\(x=\pi,x=e\)成立,但对\(x=\phi\)不成立,所以我们知道它一般不为真
进一步讨论,我们暂时离题来讨论再数学书中可能出现的不同水平的问题
水平一:
给定一个显式对象\(x\)和一个显式性质\(P(x)\),证明\(P(x)\)为真,例如“证明\(\lfloor \pi \rfloor=3\)”,这里的问题在于对所宣称的某个事实寻求一个证明
水平二:
给定一个显式集合\(X\)和一个显式性质\(P(x)\),证明\(P(x)\)对所有\(x\in X\)为真,例如“证明对所有实数\(x\)有\(\lfloor x \rfloor\leq x\)”。问题仍然在于寻求证明,但这次证明必须具有一般性,我们是在做代数而不是算术
水平三:
给定一个显式集合\(X\)和一个显式性质\(P(x)\),证明或推翻\(P(x)\)对所有\(x\in X\)为真,例如“证明或推翻对所有实数\(x\geq 0\)有\(\lceil \sqrt{\lfloor x \rfloor}\rceil =\lceil \sqrt{x}\rceil\)”.这里有一个附加的不确定性水平,两种结果皆有可能。这更接近于数学家们通常面对的真实情形:写进书中的结论都倾向于是正确的,但是新的事物必须以挑剔怀疑的眼光来审视。如果该命题为假,我们的任务就说寻找一个反例;如果该命题为真,我们就必须如同在水平\(2\)中那样寻找一个证明
水平四:
给定一个显式集合\(X\)和一个显式性质\(P(x)\),寻求一个使\(P(x)\)为真的必要且充分的条件\(Q(x)\),例如“求使\(\lfloor x \rfloor\geq \lceil x \rceil\)成立的必要充分条件”。问题是求出使得\(P(x)\Leftrightarrow Q(x)\)成立的\(Q\).当然,总有一个平凡的答案,我们可以取\(P(x)=Q(x)\)。但是问题中所隐含的要求是寻求一个尽可能简单的条件。这要求创造力来发现一个能取得成功的简单的条件(例如,在此情形下,\(P(x)\Leftrightarrow Q(x),x是整数\))寻求\(Q(x)\)所需要的其他发现要素使得这种问题更加困难,但这是数学家们在“真实世界”中必须要做的更加典型的工作。最后必须给出证明:“\(P(x)\)为真当且仅当\(Q(x)\)为真”
水平五:
给定一个显式集合\(X\),寻求其元素的一个有趣的性质\(P(x)\)。现在我们处在令人恐惧的纯粹研究领域,学生们可能会认为一切是由混沌统治着。这是真实的数学。教科书的作者们很少敢于提出水平五的问题
结束离题讨论,我们把最后的那个问题从水平三变成水平四:
使得\(\lceil\sqrt{\lfloor x \rfloor}\rceil=\lceil x \rceil\)成立的必要充分条件是什么?我们已经观察到\(x=3.142\)时成立,而\(x=1.618\)时则不然,进一步实验表示\(x\)介于\(9\)和\(10\)之间时也不成立。每当\(m^2<x<m^2+1\)时等式不成立,因为左边给出\(m\),右边给出\(m+1\)。在所有定义了\(\sqrt{x}\)的其他情形下,即当\(x=0\)或者\(m^2+1\leq x\leq (m+1)^2\)的情形,我们都能得到等式。即充分必要条件是\(x是整数\)或者\(\sqrt{\lfloor x\rfloor}\)不是整数
区间\([a,b)\)中包含\(\lceil b \rceil-\lceil a \rceil\)个整数,\((a,b]\)中包含\(\lfloor b \rfloor - \lceil a \rceil\)个整数
闭区间\([a,b]\)包含\(\lfloor b \rfloor-\lceil a \rceil+1\)个整数,开区间\((a,b)\)包含\(\lceil b \rceil - \lfloor a \rfloor-1\) 个整数,但\(a\neq b\)
具体数学俱乐部由一个赌场,其中有一个轮盘赌轮,它有一千个投币口,标号\(1\)到\(1000\),如果在一次旋转中出现的数\(n\)能被它的立方根的底整除
那么它就是一个赢点,庄家赔付给我们\(5\)美元,否则它就说一个输点,我们需要赔付\(1\)美元,如果玩这个游戏,我们能期望赢钱吗?
设赢点个数为\(W\),输点个数为\(L=1000-W\)
平均赢率是
如何计算赢点个数?
从\(1\)到\(2^3-1\)中全是赢点,从\(2^3=8\)到\(3^3-1=26\)中偶数是赢点,从\(3^3=27\)到\(4^3-1=63\)中,三的倍数是赢点
利用第二章求和计数和艾弗森约定可以分析
推广:将\(1000\)改为\(N\)
右边的和式等于\(\lfloor \frac{N}{K}\rfloor-\lceil K^2\rceil +1=\lfloor \frac{N}{K}\rfloor-K^2+1\)
给出了轮盘大小为\(N\)时的答案
这个公式前两项近似等于\(N^{\frac{2}{3}}+\frac{1}{2}N^{\frac{2}{3}}=\frac{3}{2}N^{\frac{2}{3}}\),当\(N\)很大时,其他项相比要小得多,在后面我们将学习导出
这样的表达式,其中\(O(N^{\frac{1}{3}})\)表示一个不超过\(N^{\frac{1}{3}}\)的常数倍的量,无论这个常数是什么,它与\(N\)无关,所以对于很大的\(N\),\(O\)项对\(W\)的贡献与\(\frac{3}{2}N^{\frac{2}{3}}\)相比非常小
这一节的最后一个应用是研究所谓的谱
定义,一个实数\(a\)的谱是整数组成的一个无限多重集合:
(一个多重集合与一个集合相似,不过它可以有重复的元素)例如,\(\frac{1}{2}\)的谱的开头部分是\(\{0,1,1,2,2,3,3,…\}\)
容易证明,没有两个谱是相等的。
不失一般性,假设\(a\leq b\),就存在一个正整数\(m\)使得\(m(b-a)\)使得\(m(b-a)\geq 1\)(事实上,任何一个\(m\geq \lceil \frac{1}{b-a}\rceil\)都行)从而\(mb-ma\geq 1\),且\(\lfloor mb \rfloor\geq \lfloor ma \rfloor\)。于是谱\(Spec(b)\)有少于\(m\)个元素\(\leq \lfloor ma \rfloor\),而\(Spec(a)\)至少有\(m\)个这样的元素
谱有很多美妙的性质,例如:
\(Spec(2+sqrt{2})\)的第\(n\)个元素恰好比\(Spec(\sqrt{2})\)的第\(n\)个元素多\(2n\)
还有更多性质:似乎从一个谱中消失的数都会在另一个谱中出现,但是没有任何一个数在两个谱中都出现
正整数是\(Spec(2+sqrt{2})\)和\(Spec(\sqrt{2})\)的不相交并集。我们说这些谱构成正整数的一个划分
为证明这一结论,我们要来计算\(Spec(\sqrt{2})\)中有多少个元素是\(\leq n\)的,以及\(Spec(2+\sqrt{2})\)中有多少个元素是\(\leq n\)的。如果对每个\(n\),这样的数的总和是\(n\),这两个谱就的确给出整数的划分
设\(a\)为正数。\(Spec(a)\)中\(\leq n\)的元素的个数是
利用公式:
由于
所以只要证明
这是两个和等于整数\(n+1\)的两个非整数的数的分数部分,所以这就是一个划分
底和顶的递归式
先来研究
例如,\(K_1\)就是\(1+min(2K_0,3K_0)\),此序列的开始部分是\(1,3,3,4,7,7,9,9,10,13,…\)
本书的作者之一将这些数称为高德纳数
习题\(25\)要求证明或推翻该命题:对所有\(n\geq 0\),有\(K_n\geq n\)
刚刚列出来的前面若干个\(K\)的确满足这个不等式,所以他很有可能在一般情况下也为真
尝试用归纳法证明:证明\(K_{n+1}\geq n+1\)
有递归式可知\(K_{n+1}=1+min{2K_{\lfloor \frac{n}{2}\rfloor},3K_{\lfloor \frac{n}{3}\rfloor}}\)
而由归纳假设可知\(2K_{\lfloor \frac{n}{2}\rfloor}\geq 2\lfloor \frac{n}{2}\rfloor,3K_{\lfloor \frac{n}{3}\rfloor}\geq 3\lfloor \frac{n}{3}\rfloor\)
而\(2\lfloor \frac{n}{2}\rfloor\)可以小到等于\(n-1\),\(3\lfloor \frac{n}{3}\rfloor\)可以小到等于\(n-2\),从而只能断定$K_{n+1}\geq $
所以我们开始怀疑该命题的真实性,想试着推翻它:如果能找到一个\(n\)使得\(2K_{\lfloor \frac{n}{2}\rfloor}<n\)或者\(3K_{\lfloor \frac{n}{3}\rfloor}<n\)成立
这个放在习题讲解
含有底和顶的递归关系常常在计算机科学中出现,因为以重要的分治技术为基础的算法,会把一个大小为\(n\)的问题转化为一个大小是\(n\)的几分之一(整数)的类似问题。
例如:如果\(n>1\),给\(n\)个记录排序的一种方法是把他们分成两个近乎相等的部分,一部分的大小是$\lceil \frac{n}{2}\rceil \(另一部分是\)\lfloor \frac{n}{2}\rfloor$
(注意,附带有\(\lceil \frac{n}{2}\rceil+\lfloor \frac{n}{2}\rfloor=n\),这个公式很常用)
在每一部分都被分别排序后,通过进一步做至多\(n-1\)次比较,就能将这些记录合并成最后的排序。这样一来,所执行比较的总数至多是\(f(n)\),其中
这个递归问题的解在习题\(34\)中
第一章的约瑟夫问题中有一个类似的递归式,它可以表述成:
我们已经有了比第一章更多的工具,所以可以考虑一个拓展的约瑟夫问题,其中每隔两个人淘汰一个人,而不是每隔一个人
这个递归式太难算了,根本做不了
另一种讨论约瑟夫问题的方式能给出好得多的构造。只要有一个人被处死,我们就指定一个新的号码。这样一来,\(1\)号和\(2\)号就变成\(n+1\)和\(n+2\),然后\(3\)号被处死,\(4,5\)变成\(n+3,n+4\),\(6\)号被处死\(…\),\(3k+1,3k+2\)就变成\(n+2k+1,n+2k+2\),接下来\(3k+3\)被处死\(…\)然后是\(3n\)被处死(或幸存)
第\(k\)个被处死的人最终号码是\(3k\),所以,如果我们能算出标号为\(3n\)的人的原来号码,就可以算出谁是幸存者
如果\(N>n\),标号为\(N\)的人必定有一个以前的号码,我们可以这样求:
我们有\(N=n+2k+1\)或\(N=n+2k+2\),于是\(k=\lfloor \frac{N-n-1}{2}\rfloor\),前面的号码分别是\(3k+1\)或者\(3k+2\)
移项\(3k+(N-n-2k)=k+N-n\)
从而算出幸存者的号码\(J_3(n):\)
但这不是\(J_3(n)\)的封闭形式,甚至不是递归式,但它至少告诉我们,如果\(n\)很大,怎样用合理的速度计算出答案
如果用变量\(D=3n+1-N\)来替换\(N\),就有一种办法来简化这个算法(记号的改变对应标号从\(3n\)下降到\(1\),而不是从\(1\)上升到\(3n\)),此时对\(N\)的复杂赋值就变成了
算法可以更改为
推导后可以证明,对于每\(q-1\)个人就除掉一个人时,幸存者\(J_q(n)\)的计算公式如下:
代入\(q=2\)验证:
当\(n=2^m+l\)时,\(D\)会增加到\(2^{m+1}\),所以\(J_2(n)=2(2^m+l)+1-2^{m+1}=2l+1\)
对于\(D\),我们可以总结出递归式
除了\(q=2\)以外,这些数看不出与任何熟悉的简单函数有关,所以它们可能没有好的封闭形式,但是如果我们可以将序列\(D^{(q)}_n\)看作是已知的,那就容易得到约瑟夫问题的一般解:
幸存者\(J_q(n)\)是\(qn+1-D^{q(n)}_k\) ,其中\(k\)是使得\(D^{(q)}_k>(q-1)n\)成立的尽可能小数
mod:二元运算
当\(m、n\)是正整数时,\(n\)被\(m\)除的商是\(\lfloor \frac{n}{m}\rfloor\) 这个除法的余数有一个记号,我们称它为\(n\ mod\ m\)
基本公式
告诉我们,\(n\ mod\ m\) 可以表示成\(n-m\lfloor\frac{n}{m}\rfloor\)
我可以将它推广到负整数,实际上也可以推广到任意实数
这就将\(mod\)定义成一个二元运算
很容易理解\(mod\)的直观意义:当\(x\)和\(y\)是正实数时,想象一个周长为\(y\)的圆,它的点被赋予区间\([0…y)\)中的实数。如果我们从\(0\)出发,绕着圆行走距离\(x\),我们就停止在\(x\ mod\ y\),我们行走中遇到\(0\)的次数是\(\lfloor\frac{x}{y}\rfloor\)
\(mod\)后面的数称作模,在应用中,模通常是正的,但当模是负数时,这个定义也完全有意义。在这两种情形下,\(x\ mod\ y\)的值都介于\(0\)和模之间
在模等于0时,我们定义\(x\ mod\ 0=x\)
这个约定保持这样的性质,\(x\ mod\ y\)与\(x\)永远相差\(y\)的一个倍数
(更自然的似乎是,定义\(x\ mod\ 0=\lim_{x\to0}x\ mod\ y=0\)来使得这个函数在\(0\)处连续,但我们在后面会看到这很少有用,连续性对模运算并不重要)
分配律是\(mod\)最重要的代数性质,对所有实数\(c,x,y\)有
容易根据定义证明法则,如果\(cy\neq 0\),有
将\(n\)个物品分成\(m\)个非增次序的排列且尽可能相等的部分的划分:
将非增改为非减
如果用\(mx\)替换掉\(n\)
左侧实数的近似值竟然与右侧\(m\)个实数的近似值的和相等
假设\(\lfloor x\rfloor\)平均大致是\(x-\frac{1}{2}\),左侧大致是\(mx-\frac{1}{2}\),右侧大致等于\((x-\frac{1}{2})+(x-\frac{1}{2}+\frac{1}{m})+…+(x-\frac{1}{2}+\frac{m-1}{m})=mx-\frac{1}{2}\)相等
底和顶的和式
对底和顶的和式求封闭形式的有效技巧常常是通过引入一个新的变量来规避底或者顶
考虑对\(\sum_{0\leq k<n}\lfloor \sqrt{k}\rfloor\)求封闭形式
一种想法是引入变量\(m=\lfloor\sqrt{k}\rfloor\),我们可以用在轮盘赌问题中的做法“机械地”解决这个问题
边界条件有点微妙,假设\(n=a^2\)是一个完全平方,这样,第二个和式就是零,而第一个和式可以用惯用的方法计算
在一般情形下,我们可以设\(a=\lfloor\sqrt{n}\rfloor\),这样就只需要再加上满足\(a^2\leq k<n\)的项,这些项全都等于\(a\),故它们的和等于\((n-a^2)a\)。这就给出了所要的封闭形式
求这个和式的另一个方法是用\(\sum_{j}[1\leq j\leq x]\)替代形如\(\lfloor x \rfloor\)的表达式,只要\(x\geq 0\),方便起见,假设\(n=a^2\),那么此方法在形如\(\lfloor 平方根\rfloor\)的和式中有效,其原因是:
还有另一个例子,在其中做变量替换就会导出一个变形的和式
该定理是:如果\(a\)是无理数,那么分数部分\(\{na\}\)当\(n\to∞\)时在\(0\)和\(1\)之间是非常一致的。
叙述这一点的一种方式是:对所有的无理数\(a\)以及所有几乎处处连续的有界函数\(f\)有
例如,令\(f(x)=x\),可以求得\(\{na\}\)的平均值,我们得到\(\frac{1}{2}\)。(这正是我们期待的,知道下面的结果也是令人愉快的:无论\(a\)是什么样的无理数,这个结果都确实可以证明是正确的)
这个定理的证明是用“阶梯函数”从上方以及下方逼近\(f(x)\)的方法证明的,阶梯函数是当\(0\leq v\leq 1\)时简单函数
的线性组合。在这里,我们的目的不是证明这个定理,我们想要通过观察在特殊情形\(f(x)=f_v(x)\)下这个定理是多么成功,来指出它成立的根本原因。换句话说,尝试研究当\(n\)很大且\(a\)是无理数时,和式
与“理想的”值\(nv\)有多么接近
为此,我们定义“偏差”,\(D(a,n)\)是和式
待更,后面太难了,完全看不懂