• 具体数学-第7课(取整基础)


    原文链接:

    具体数学-第7课 - WeiYang Blog

    首先声明一下,最近这段时间忙毕设,没时间更新博客了,大家见谅。

    今天这节课开始讲解取整相关知识,主要是数论相关的了。

    符号定义

    向下取整函数 leftlfloor x 
ight
floor 定义为小于等于 x 的最大整数。
    向上取整函数 leftlceil x 
ight
ceil 定义为大于等于 x 的最小整数。
    { x} 定义为实数 x 的小数部分,即
    { x} = x - leftlfloor x 
ight
floor

    性质

    性质1

    leftlceil x 
ight
ceil - leftlfloor x 
ight
floor = [x in mathbb{Z}]

    性质2

    取整函数范围:
    x - 1 < leftlfloor x 
ight
floor le x le leftlceil x 
ight
ceil < x + 1

    性质3

    负数的取整:
    egin{array}{l}leftlfloor { - x} 
ight
floor = - leftlceil x 
ight
ceil \leftlceil { - x} 
ight
ceil = - leftlfloor x 
ight
floor end{array}

    性质4

    取整函数中的整数可以提取出来:
    leftlfloor {x + n} 
ight
floor = leftlfloor x 
ight
floor + n

    应用

    应用1

    证明:
    leftlfloor {sqrt {leftlfloor x 
ight
floor } } 
ight
floor = leftlfloor {sqrt x } 
ight
floor

    更一般的,我们还可以证明,对于任意连续、递增的函数 f(x) ,如果它满足
    f(x) in mathbb{Z} Rightarrow x in mathbb{Z}
    那么有
    egin{array}{l}leftlfloor {f(x)} 
ight
floor = leftlfloor {f(leftlfloor x 
ight
floor )} 
ight
floor \leftlceil {f(x)} 
ight
ceil = leftlceil {f(leftlceil x 
ight
ceil )} 
ight
ceil end{array}

    我们证明第2个式子,第1个同理可证。

    如果 x = leftlceil x 
ight
ceil ,显然成立。

    否则 x < leftlceil x 
ight
ceil ,因为 f(x) 递增,所以有
    f(x) < f(leftlceil x 
ight
ceil )
    两边同时取整,有
    leftlceil {f(x)} 
ight
ceil le leftlceil {f(leftlceil x 
ight
ceil )} 
ight
ceil
    要证左右两边相等,那么只要证
    leftlceil {f(x)} 
ight
ceil < leftlceil {f(leftlceil x 
ight
ceil )} 
ight
ceil
    不成立即可。假设上式成立,那么由中间值定理,一定存在 x le y < leftlceil x 
ight
ceil ,使得
    f(y) = leftlceil {f(x)} 
ight
ceil
    敲黑板!!这里是怎么来的呢?
    由下图可以看出,当下面式子成立时,满足中间值定理
    f(x) < leftlceil {f(x)} 
ight
ceil < f(leftlceil x 
ight
ceil )
    但是在这里,我们假设是
    leftlceil {f(x)} 
ight
ceil < leftlceil {f(leftlceil x 
ight
ceil )} 
ight
ceil
    那么由 leftlceil {f(x)} 
ight
ceil < leftlceil {f(leftlceil x 
ight
ceil )} 
ight
ceil 能否推出 leftlceil {f(x)} 
ight
ceil < f(leftlceil x 
ight
ceil ) 呢?当然是可以的。
    egin{array}{l}leftlceil {f(x)} 
ight
ceil < leftlceil {f(leftlceil x 
ight
ceil )} 
ight
ceil \ Rightarrow leftlceil {f(x)} 
ight
ceil le leftlceil {f(leftlceil x 
ight
ceil )} 
ight
ceil - 1 < f(leftlceil x 
ight
ceil )end{array}

    v2-463965dad49661d26dbfac1e74e51e3f_b.jpg

    所以
    f(y) in mathbb{Z} Rightarrow y in mathbb{Z}
    又因为 x le y < leftlceil x 
ight
ceil ,所以不存在整数 y ,矛盾!

    所以证得
    leftlceil {f(x)} 
ight
ceil = leftlceil {f(leftlceil x 
ight
ceil )} 
ight
ceil

    另一个特殊的例子是
    leftlfloor {frac{ {x + m}}{n}} 
ight
floor = leftlfloor {frac{ {leftlfloor x 
ight
floor + m}}{n}} 
ight
floor
    其中 mn 都是整数,并且 n 是正整数。

    应用2

    接着介绍区间相关的性质。

    求1到1000中使得下列式子成立的 n 一共有多少个?
    leftlfloor {sqrt[3]{n}} 
ight
floor |n
    求解方法如下:
    egin{array}{l}W{
m{ = }}sumlimits_{1 le n le 1000} {left[ {leftlfloor {sqrt[3]{n}} 
ight
floor |n} 
ight]} \ = sumlimits_{k,n} {left[ {k = leftlfloor {sqrt[3]{n}} 
ight
floor } 
ight]left[ {k|n} 
ight]left[ {1 le n le 1000} 
ight]} \ = sumlimits_{k,m,n} {left[ { {k^3} le n < { {(k + 1)}^3}} 
ight]left[ {n = km} 
ight]} left[ {1 le n le 1000} 
ight]\ = 1 + sumlimits_{k,m} {left[ { {k^3} le km < { {(k + 1)}^3}} 
ight]} left[ {1 le k < 10} 
ight]\ = 1 + sumlimits_{k,m} {left[ {m in [{k^2},{ {(k + 1)}^3}/k)} 
ight]} left[ {1 le k < 10} 
ight]\ = 1 + sumlimits_{1 le k < 10} {(leftlceil { {k^2} + 3k + 3 + 1/k} 
ight
ceil - leftlceil { {k^2}} 
ight
ceil )} \ = 1 + sumlimits_{1 le k < 10} {(3k + 4)} \ = 172end{array}

    继续推广,求1到 N 中使得上面式子成立的 n 有多少个?

    K = leftlfloor {sqrt[3]{N}} 
ight
floor
    也就是小于等于 leftlfloor {sqrt[3]{N}} 
ight
floor 的最大整数。
    所以
    egin{array}{l}W = sumlimits_{1 le k < K} {(3k + 4)} + sumlimits_m {left[ { {K^3} le Km le N} 
ight]} \ = leftlfloor {N/K} 
ight
floor + frac{1}{2}{K^2} + frac{5}{2}K - 3end{array}
    渐进地等于
    W = frac{3}{2}{N^{2/3}} + O({N^{1/3}})

    应用3

    定义一个实数的谱为:
    Spec(alpha ) = { leftlfloor alpha 
ight
floor ,leftlfloor {2alpha } 
ight
floor ,leftlfloor {3alpha } 
ight
floor , ldots }

    很容易证明如果两个实数 alpha 
e eta ,那么
    Spec(alpha ) 
e Spec(eta )

    假设 alpha < eta ,那么令
    m(eta - alpha ) ge 1
    所以
    meta ge malpha + 1 Rightarrow leftlfloor {meta } 
ight
floor > leftlfloor {malpha } 
ight
floor
    所以集合 Spec(eta ) 中小于 leftlfloor {malpha } 
ight
floor 的元素个数小于 m 。而集合 Spec(alpha ) 中小于 leftlfloor {malpha } 
ight
floor 的元素个数大于等于 m 。所以两个集合不相等。

    谱有很多奇妙的性质,例如下面两个谱:
    egin{array}{l}Spec(sqrt 2 ) = { leftlfloor {sqrt 2 } 
ight
floor ,leftlfloor {2sqrt 2 } 
ight
floor ,leftlfloor {3sqrt 2 } 
ight
floor , ldots } \Spec(2{
m{ + }}sqrt 2 ) = { leftlfloor {2{
m{ + }}sqrt 2 } 
ight
floor ,leftlfloor {2(2{
m{ + }}sqrt 2 )} 
ight
floor ,leftlfloor {3(2{
m{ + }}sqrt 2 )} 
ight
floor , ldots } end{array}
    可以发现,这两个谱正好划分了正整数集。
    证明方法也很简单,只要证明对任意正整数 n ,两个集合中小于 n 的元素个数之和为 n ,过程如下:
    egin{array}{l}leftlfloor {ksqrt 2 } 
ight
floor le n\ Rightarrow ksqrt 2 < n + 1\ Rightarrow k < frac{ {n + 1}}{ {sqrt 2 }}end{array}
    所以第一个集合中小于 n 的元素个数为
    leftlfloor {frac{ {n + 1}}{ {sqrt 2 }}} 
ight
floor
    同理第二个集合中小于 n 的元素个数为
    leftlfloor {frac{ {n + 1}}{ {2 + sqrt 2 }}} 
ight
floor
    所以总个数为
    egin{array}{l}leftlfloor {frac{ {n + 1}}{ {sqrt 2 }}} 
ight
floor + leftlfloor {frac{ {n + 1}}{ {2 + sqrt 2 }}} 
ight
floor \ = leftlfloor {frac{ {sqrt 2 }}{2}(n + 1)} 
ight
floor + leftlfloor {frac{ {2 - sqrt 2 }}{2}(n + 1)} 
ight
floor \ = n + 1 + leftlfloor {frac{ {sqrt 2 }}{2}(n + 1)} 
ight
floor + leftlfloor { - frac{ {sqrt 2 }}{2}(n + 1)} 
ight
floor \ = n + 1 + leftlfloor {frac{ {sqrt 2 }}{2}(n + 1)} 
ight
floor + leftlfloor {frac{ {sqrt 2 }}{2}(n + 1)} 
ight
floor - 1\ = nend{array}
    得证。

  • 相关阅读:
    查找质数的算法优化版
    一些新闻链接
    spring的自动装配基础
    Spring中的Autowired注解和Resource注解的区别
    动态规划:01背包 复习
    贪心问题 POJ 2393 Yogurt factory
    穷竭搜索:POJ 3187 Backward Digit Sums
    穷竭搜索: POJ 2718 Smallest Difference
    何凯文每日一句打卡||DAY1~DAY3
    贪心问题:区间覆盖 POJ 1328 Rader Installation
  • 原文地址:https://www.cnblogs.com/godweiyang/p/12203929.html
Copyright © 2020-2023  润新知