楼层多余(sqrt(floor(x)))?

时间:2009-05-17 20:06:58

标签: math floor

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

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

9 个答案:

答案 0 :(得分:36)

显然外层不是多余的,因为例如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是单一的,我们有

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<eps<1和整数n。除此之外,假设floor(sqrt(n))=mfloor(sqrt(n+eps))=m+1,你有sqrt(n)<m+1 sqrt(n+eps)>=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)))

答案 1 :(得分:17)

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

外部的不是多余的,因为如果x是平方数,则数字x的平方根只会产生整数。

内部是冗余的,因为区间[x,x + 1 [(其中x是整数)中任何数字的平方根总是位于区间[floor(sqrt(x)),ceil(sqrt)内(x))[因此,如果您只对结果的整数部分感兴趣,则在取平方根之前不需要对数字进行平移。

答案 2 :(得分:5)

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

除非你能提供证明我错误的x值,否则不允许我投票。 8 - )

修改:请参阅v3对此答案的评论以获取证明 - 谢谢,v3!

答案 3 :(得分:4)

内层是多余的

答案 4 :(得分:4)

内层是多余的。矛盾的证据:

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

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

对于某些x和d,其中floor(x)= floor(x + d)。然后我们要考虑三个数字: a = sqrt(x),b = floor(sqrt(x + d)),c = sqrt(x + d)。 b是整数,并且&lt; b&lt; C。 这意味着a ^ 2&lt; b ^ 2&lt; c ^ 2,或x < b ^ 2&lt; X + d。但如果b是整数, 那么b ^ 2是一个整数。因此floor(x)&lt; b ^ 2,并且b ^ 2&lt; = floor(x + d),然后floor(x)&lt;地板(X + d)。但我们首先假设floor(x)= floor(x + d)。我们已经达成了矛盾,所以我们的假设是错误的,内层是多余的。

答案 5 :(得分:3)

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

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

答案 6 :(得分:3)

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

楼层(sqrt(楼层(2)))=楼层(sqrt(2))=楼层(1.41 ...)

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

答案 7 :(得分:2)

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

注意n - 1&lt; m&lt; = n。 m总是小于或等于n

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

然而,没有值sq,其中sqrt(n)与sqrt(n + 1)相差至少1.0,因为对于0和1之间的所有值,该值的sqrt是&lt; 1根据定义。

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

因此内层是多余的。

答案 8 :(得分:0)

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

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

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