You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何不用枚举法证明整数n下n/6与⌊(n-3)/6⌋的最大差值为1⅓

如何不用枚举法证明整数n下n/6与⌊(n-3)/6⌋的最大差值为1⅓

嘿,这个问题咱们不用一个个试数,直接用整数带余除法向下取整函数的核心性质就能严谨证明,思路很清晰:

首先,对于任意整数n,我们可以用带余除法把它写成:
n = 6k + r
其中k是整数,r是余数,取值范围是 r ∈ {0, 1, 2, 3, 4, 5}(这是整数除法的基本性质,所有整数都能拆成6的倍数加0到5之间的余数)。

接下来我们分情况计算⌊(n-3)/6⌋:
把n代入式子得:
(n-3)/6 = (6k + r - 3)/6 = k + (r-3)/6

根据向下取整函数⌊x⌋的定义:对于任意实数x,⌊x⌋是小于等于x的最大整数,我们分两种情况讨论:

  • 当r ≥ 3时(也就是r=3、4、5):(r-3)是0、1、2,所以(r-3)/6是0到1/3之间的非负数,这时候⌊k + (r-3)/6⌋ = k(因为k是整数,加上一个小于1的非负数,向下取整还是k)。
  • 当r < 3时(也就是r=0、1、2):(r-3)是-3、-2、-1,所以(r-3)/6是-0.5到-1/6之间的负数,这时候⌊k + (r-3)/6⌋ = k - 1(整数k加上一个大于-1的负数,向下取整会比k小1)。

现在计算差值D = n/6 - ⌊(n-3)/6⌋,分别代入两种情况:

  1. r ≥ 3的情况
    D = (6k + r)/6 - k = r/6
    r最大是5,所以D最大是5/6 ≈ 0.833,明显小于1⅓。
  2. r < 3的情况
    D = (6k + r)/6 - (k - 1) = (6k + r)/6 - k + 1 = r/6 + 1
    这里r最大取2,代入得:D = 2/6 + 1 = 1 + 1/3 = 1⅓,这就是我们要找的最大值。

再验证一下你提到的n=8+6i的情况:比如i=0时n=8,拆成61+2,属于r=2的情况,差值是8/6 - ⌊(8-3)/6⌋ = 4/3 - 0 = 1⅓;i=1时n=14=62+2,差值是14/6 - ⌊11/6⌋ = 7/3 -1 = 1⅓,完全符合推导结果。

而且我们能确定这个差值不会更大:因为r只能取0到5,其他r值对应的D要么是1(r=0)、1⅙(r=1),要么是≤5/6(r≥3),都比1⅓小。这样就严谨证明了最大值就是1⅓,不用枚举所有n~

备注:内容来源于stack exchange,提问作者Kenneth Watanabe

火山引擎 最新活动