Просто уравнение пола
У меня есть длинное уравнение, которое я хочу упростить, но у меня нет идей, как это сделать.
4 * (этаж ((15-11 * х-пол (х /19)+ пол (х%) - пол (х% / 4) -Пол ((пол (х%) + 1-этаж ((пол (х %)+8)/25))/3))/30)-Пол ((15-11 * х-пол (х /19))/30))+ этаж ((этаж ((пол (х%) + 1-этаж ((пол (х%)+8)/25))/3)+3+3* х-пол (х / 4 +) пол (х /19)+2* этаж (0.5-11/30* х-пол (х /19)/30+(пол (х%) - пол (х% / 4) -Пол ((пол (х%) + 1-этаж ((пол (х%)+8)/25))/3))/30))/7)-Пол ((5 + 3 * х-пол (х / 4 +) пол (х /19)+2* этаж (0.5-11/30* х- пол (х /19)/30))/7)+ пол ((13-54 / 11 * х-2 * пол (х /4)-8/11* пол (х /19)+ этаж ((этаж (х%) + 1-этаж ((пол (х%) + 8) / 25)) / 3) + пол (х%) - 3 * пол (х%/4)-26* этаж ((15-11 * х-пол (х /19)+ пол (х%) - пол (х% / 4) -Пол ((пол (х%) + 1-этаж ((пол (х%)+8)/25))/3))/30)-14* этаж ((1 + этаж ((пол (х%) + 1-этаж ((пол (х%)+8)/25))/3)+3* х-пол (х / 4 +) пол (х /19)+2* этаж ((15-11 * х-пол (х /19)+ пол (х%) - пол (х% / 4) -Пол ((пол (х %) + 1-этаж ((пол (х%)+8)/25))/3))/30))/7))/41)
Я только хочу использовать функцию пола.
x здесь - положительное целое число (x>1582), а x% - это x, деленное на 100.
заранее спасибо
1 ответ
Вы не можете упростить floor(x+y)
для дробных х и у, но если вы знаете, что х является целым числом, то floor(x+y) = x + floor(y)
Вы также можете упростить floor(floor(x/a)/b)
через целые числа
Действительно, давайте напишем евклидовы деления для натуральных чисел x = b * (a*y+c) + d
с c < a
а также d < b
У нас есть x = a*b * y + (b*c+d)
Над целыми числами мы можем написать c <= a - 1
таким образом b*c <= (a-1)*b
,
А потом используя другое неравенство d < b
=> b*c+d < (a-1)*b+b
таким образом b*c+d < a*b
,
таким образом floor(floor(x/a)/b) = floor( x/(a*b) )
над положительными целыми числами.
Что вы можете сделать, это написать границы выражений, таких как:
floor(a/c)+floor(b/c) <= floor((a+b)/c) <= floor(a/b)+floor(b/c)+1
затем применить правила упрощения на границах