我正在将我的解决方案与另一个解决方案进行比较,发现这条不同的线路起初看起来并不相同,但它们是。
所以我的问题是:这种平等怎么可能?
ceil(k / x) - 1 == floor((k - 1) / x)
答案 0 :(得分:5)
我假设 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( ķ / 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 )和<向下舍入到下一个较低的整数时,em> k / x 将得到相同的结果;因此,ceil( k / x ) - 1 = floor( k / x )= floor((< EM>ķ -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。
[注意:我知道这在数学上并不严谨。]