does this equation hold for all positive integers
floor( z / (x*y) ) = floor( floor(z / x) / y )
if so, how to prove it?
i have already tested it on randomly generated numbers. also, i have previously used it in a problem and it worked fine
# | User | Rating |
---|---|---|
1 | tourist | 3985 |
2 | jiangly | 3814 |
3 | jqdai0815 | 3682 |
4 | Benq | 3529 |
5 | orzdevinwang | 3526 |
6 | ksun48 | 3517 |
7 | Radewoosh | 3410 |
8 | hos.lyric | 3399 |
9 | ecnerwala | 3392 |
9 | Um_nik | 3392 |
# | User | Contrib. |
---|---|---|
1 | cry | 169 |
2 | maomao90 | 162 |
2 | Um_nik | 162 |
4 | atcoder_official | 161 |
5 | djm03178 | 158 |
6 | -is-this-fft- | 157 |
7 | adamant | 155 |
8 | awoo | 154 |
8 | Dominater069 | 154 |
10 | luogu_official | 150 |
does this equation hold for all positive integers
floor( z / (x*y) ) = floor( floor(z / x) / y )
if so, how to prove it?
i have already tested it on randomly generated numbers. also, i have previously used it in a problem and it worked fine
Name |
---|
It's Wrong for Z=3.5 X=1 Y=3.5
floor(3.5/3.5)=floor(1)=1
floor(floor(3.5/1)/3.5)=floor(3/3.5)=0
1!=0
He meant for all positive integers :D
your right.I'm sorry.
I am not good at mathematics, but I think I got some idea about it. Instead of giving a rigorous proof. I will show some facts about floor.
The floor(a/b) returns r where a = r*b+c such that c < b
Now, about floor(z/(x*y) return r where z = r*(x*y)+c where c < (x*y)
This can be written as z = (r*x+p)*y+q where q = c-floor(c/y)*y. so p will always less then x too.
Now, going backward r = floor(floor(z/x)/y).
so simple :D thank you
it's easy to prove that for any real x and integer a and b, a > 0.
thank you!
Here is my thought.
There are z bread items. To make one pizza we require exactly x bread items. And to satisfy a hungry person, he needs exactly y pizzas.
Then using z bread items, we can make floor(z/x) pizzas. Since each person needs y pizzas, we can satisfy floor(floor(z/x)/y).
Now, thinking other way, to satisfy p people, we need p * y pizzas, which means we need p * y * x bread items. So, with z bread items, p = floor(z / (y*x)) people can be satisfied.
very neat!
floor(z/(xy)) = p = total people satisfied
z = pxy + r = total bread items, r < xy,
z = pxy + (remaining_pizzas * x + remaining_breads)
but remaining_pizzas < y, otherwise we could satisfy one more people by using y pizzas from remaining pizzas (and contradicting our assumption that only p people were satisfied), also remaining_breads < x.
floor(z/x) = (py + remaining_pizzas)
Now,
floor(floor(z/x)/y) = py
to prove floor(floor(z/y)/x) = floor(z/(xy)), swap roles of x and y and write eqn as
z = pxy + (remaining_pizzas * y + remaining_breads)