天花板和地板之间奇怪的平等
Strange equality between ceil and floor
我将我的解决方案与另一个解决方案进行比较,发现这条不同的线一开始看起来并不相等,但实际上它们是。
所以我的问题是:这种平等怎么可能?
ceil(k / x) - 1 == floor((k - 1) / x)
这里我假设 x 是一个正整数。
有两种情况需要考虑:要么 k 是 x 的倍数,要么不是。
当k是x的倍数时,则ceil(k/x) = k/x 因为 k/x 是一个整数。此外,由于 (k-1)/x < k/x 和 k/x 是一个整数,表示 floor((k-1 )/x) 将是下一个较低的整数,即 k/x-1,等于ceil(k/x)-1.
当k不是x的倍数时,则ceil(k/x) 是 k/x 四舍五入到下一个整数,并且 floor( k/x) 是 k/x 四舍五入到下一个较小的整数.显然,ceil(k/x) - 1 = floor(k/ x).由于 k 不是 x 的倍数,很明显 (k-1/x) 和 k/x 将在向下舍入到下一个较小整数时给出相同的结果;因此,ceil(k/x) - 1 = floor(k/ x) = floor((k-1)/x).
因此,这两种情况下的关系都是正确的。
如果 x
或 k
可以是非整数则不成立:尝试 k=3, 例如 x=.01。现在 ceil(k/x) = 300, floor((k-1)/x) = 200。或者尝试 k=4.1, x=2: ceil( k/x) = 3, floor((k-1)/x) = 1.
[注意:我知道这在数学上并不严谨。]
我将我的解决方案与另一个解决方案进行比较,发现这条不同的线一开始看起来并不相等,但实际上它们是。
所以我的问题是:这种平等怎么可能?
ceil(k / x) - 1 == floor((k - 1) / x)
这里我假设 x 是一个正整数。
有两种情况需要考虑:要么 k 是 x 的倍数,要么不是。
当k是x的倍数时,则ceil(k/x) = k/x 因为 k/x 是一个整数。此外,由于 (k-1)/x < k/x 和 k/x 是一个整数,表示 floor((k-1 )/x) 将是下一个较低的整数,即 k/x-1,等于ceil(k/x)-1.
当k不是x的倍数时,则ceil(k/x) 是 k/x 四舍五入到下一个整数,并且 floor( k/x) 是 k/x 四舍五入到下一个较小的整数.显然,ceil(k/x) - 1 = floor(k/ x).由于 k 不是 x 的倍数,很明显 (k-1/x) 和 k/x 将在向下舍入到下一个较小整数时给出相同的结果;因此,ceil(k/x) - 1 = floor(k/ x) = floor((k-1)/x).
因此,这两种情况下的关系都是正确的。
如果 x
或 k
可以是非整数则不成立:尝试 k=3, 例如 x=.01。现在 ceil(k/x) = 300, floor((k-1)/x) = 200。或者尝试 k=4.1, x=2: ceil( k/x) = 3, floor((k-1)/x) = 1.
[注意:我知道这在数学上并不严谨。]