【问题标题】:Which floor is redundant in floor(sqrt(floor(x)))?floor(sqrt(floor(x))) 中哪一层是多余的?
【发布时间】:2009-05-17 20:06:57
【问题描述】:

我有floor(sqrt(floor(x)))。这是真的:

  1. 内部的floor 是多余的。
  2. 外部的floor 是多余的。

【问题讨论】:

  • 为什么称之为“地板和天花板问题”?
  • 其实,下面扩展Elazar Leibovich的想法可以证明以下非常一般的结果:如果f(x)是任何连续的单调递增函数,使得:f(x)是一个整数==> x 是一个整数,则 floor(f(x)) = floor(f(floor(x))) 并且类似地,天花板(f(x)) = 天花板(f(天花板(x)))。 (参考:Graham、Knuth、Patashnik 的《具体数学》;第 71 页,方程 3.10)。
  • 我的下一个问题是开发一个通用框架。感谢您的参考。我一定会看看调查结果。
  • @Ashutosh:顺便说一句,你的博客看起来很酷。

标签: math floor


【解决方案1】:

显然外层不是多余的,例如,sqrt(2) 不是整数,因此floor(sqrt(2))≠sqrt(2)

也很容易看出sqrt(floor(x))≠sqrt(x) 表示非整数x。因为sqrt是一个单调函数。

我们需要确定floor(sqrt(floor(x)))==floor(sqrt(x)) 是否适用于所有有理数(或实数)。

让我们证明如果sqrt(n)<m 那么sqrt(n+1)<m+1,对于整数m,n。不难看出

n<m^2 ⇒ n+1 < m^2+1 < m^2+2m+1 = (m+1)^2

因此,sqrt 是 montone 我们有这个事实

sqrt(n) < m -> sqrt(n+1) < m+1 -> sqrt(n+eps)<m+1 for 0<=eps<1

因此floor(sqrt(n))=floor(sqrt(n+eps)) 代表所有0&lt;eps&lt;1 和整数n。否则,假设 floor(sqrt(n))=mfloor(sqrt(n+eps))=m+1,你就会遇到 sqrt(n)&lt;m+1sqrt(n+eps)&gt;=m+1 的情况。

因此,假设需要外部floor,则内部floor 是多余的。

换一种说法总是正确的

floor(sqrt(n)) == floor(sqrt(floor(n)))

内部ceil呢?

很容易看出floor(sqrt(n)) ≠ floor(sqrt(ceil(n)))。例如

floor(sqrt(0.001))=0, while floor(sqrt(1))=1

但是你可以用类似的方式证明

ceil(sqrt(n)) == ceil(sqrt(ceil(n)))

【讨论】:

  • 您的解决方案是否意味着内部天花板也是多余的?
  • 我在这里看不到任何问题。除非有人证明,否则这是正确的。
【解决方案2】:

内层是多余的,外层当然不是。

外部的不是多余的,因为只有当 x 是平方数时,数字 x 的平方根才会产生整数。

内层是多余的,因为区间 [x,x+1[ (其中 x 是整数)中任何数的平方根始终位于区间 [floor(sqrt(x)),ceil(sqrt (x))[ 因此,如果您只对结果的整数部分感兴趣,则无需在取其平方根之前对数字求底。

【讨论】:

  • 有很多很好的证明,但这个是最甜蜜的。谢谢。
  • 谁说 [sqrt(x),sqrt(x+1)] 中没有整数?例如,如果 sqrt(x)==0.9 和 sqrt(x+1)=1.2,则 floor(sqrt(floor(x))) 的结果可能与 floor(sqrt(x)) 不同
  • 很高兴你喜欢它。在阅读了所有不同且做得很好的实际证明之后,我认为我的解释对于某些人来说可能过于非正式。
  • 哇。解决方案有漏洞吗?
  • @Elazar:我写的是 [sqrt(x),sqrt(x)+1[ 而不是 [sqrt(x),sqrt(x+1)[,但即便如此你是对的(虽然,你的例子是错误的)。我已将间隔更正为我的实际意思。任意整数 x 的 sqrt(x) 和 sqrt(x+1) 都在同一个整数区间内。
【解决方案3】:

直觉上我认为内部是多余的,但我无法证明。

除非你能提供一个 x 值来证明我错了,否则你不能投票给我。 8-)

编辑:请参阅 v3 对此答案的评论以获取证据 - 谢谢 v3!

【讨论】:

  • 我也尝试了一些例子,我的直觉认为内在的例子是多余的,但很难证明我是正确的。
  • 确实如此。有一个答案说内部那个是多余的,但在我投票之前,它被否决并删除了。不过,我相信情况确实如此。
  • 你不能说 floor(sqrt(x)) 只改变 x 的整数值吗?如果 x 不是一个整数,那么它不会改变平方根的整数部分。
【解决方案4】:

内层是多余的

【讨论】:

  • 那里,我会给你失去的 10 分 :) 我很惊讶里奇得到这么多的赞成票来支持这样的答案......
  • 任何反对我的人,都需要反对 Richie。我在他面前给出我的答案。
【解决方案5】:

内层是多余的。反证法:

假设内层不是多余的。这意味着:

floor(sqrt(x)) != floor(sqrt(x+d))

对于某些 x 和 d,其中 floor(x) = floor(x+d)。然后我们要考虑三个数字: a = sqrt(x),b = 楼层(sqrt(x+d)),c = sqrt(x+d)。 b 是一个整数,a

【讨论】:

    【解决方案6】:

    如果 x 是整数,则内层是多余的。

    如果 x 不是整数,则两者都不是多余的。

    【讨论】:

    • 问题真的是为什么第二部分。
    • 这么多废话,而 Macker 只说得对且简洁。
    • bla bla 试图说服自己这是真的。
    • 奇怪的是,您说它是错误的,但在您选择答案时却同意相同的结论。我很困惑。顺便说一句,您没有在问题中要求证明。
    • 很抱歉,这个问题仍然悬而未决。你能用你的证明编辑它吗?
    【解决方案7】:

    外层不是多余的。反例:x = 2。

    地板(sqrt(地板(2))) = 地板(sqrt(2)) = 地板(1.41...)

    如果没有外层,结果将是 1.41...

    【讨论】:

      【解决方案8】:

      如果内层不是多余的,那么我们会期望 floor(sqrt(n)) != floor(sqrt(m)),其中 m = floor(n)

      请注意,n - 1

      floor(sqrt(n)) != floor(sqrt(m)) 要求 sqrt(n) 和 sqrt(m) 的值至少相差 1.0

      但是,没有任何值 n 的 sqrt(n) 与 sqrt(n + 1) 相差至少 1.0,因为对于 0 和 1 之间的所有值,根据定义,该值的 sqrt

      因此,对于所有值 n,下限(sqrt(n)) == 下限(sqrt(n + 1))。这与最初的假设相矛盾。

      因此内层是多余的。

      【讨论】:

      • "floor(sqrt(n)) != floor(sqrt(m)) 要求 sqrt(n) 和 sqrt(m) 的值至少相差 1.0" 似乎没有是的,如果 sqrt(n) = 0.999 和 sqrt(m) = 1,它们的差远小于 1,但是 floor(sqrt(n))!=floor(sqrt(m))
      • "注意 n
      【解决方案9】:

      如果n^2 &lt;= x &lt; (n+1)^2 其中n 是整数,则

      1. n &lt;= sqrt(x) &lt; n+1,所以floor(sqrt(x)) = n
      2. n^2 &lt;= floor(x) &lt; (n+1)^2,所以n &lt;= sqrt(floor(x)) &lt; n+1,所以floor(sqrt(floor(x))) = n

      因此,floor(sqrt(floor(x))) = floor(sqrt(x)),表示内层是多余的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-07-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-13
        • 2017-02-19
        • 1970-01-01
        相关资源
        最近更新 更多