[python крут] деление с округлением вверх
Количество инструкций одинаковое.
Вдобавок, в питоне нужно ожидать результата деления, это еще усложнит планирование, чего доброго.
И ч0?пох на количество инструкций, выглядит кроссиво и понятнее, имхо (не настаиваю на объективности).
Количество инструкций одинаковое.
Вдобавок, в питоне нужно ожидать результата деленияWAT
В сях деление последним делается, запланировал и забыл.
выглядит кроссиво и понятнееЧем ты мерял кроссату.
Чем ты мерял кроссату.т.е. с понятностью все понятно?
Ну т.е. он и так будет тормозить немножко (например, в x86 нету такого математического целочисленного деления с округлением вниз, насколько я знаю)
http://php.net/ceil - выглядит красиво и понятнее!
PHPможно не в этом треде? спасибо пожалуйста
я правильно понимаю, что эта крутость работает только для неотрицательных чисел?
т.е. с понятностью все понятно?Нуахуле!
Ну почему, по идее-то для всех.
> выглядит кроссиво и понятнее
> return -(-a // b)
> выглядит кроссиво и понятнее
не, ну серьезно, эта идиома с врезанием минуса же часто в математике встречается, всякие там max(f(x = -min(-f(x. Поэтому если ты знаешь, что a//b округляет результат обязательно в меньшую сторону, то -(-a//b) округлит в большую, тут думать особо не надо. А название функции подсказывает, что она должна делать, так что гадать замысел программиста тоже не приходится.
-(-a//b)Только вот минус у тебя тут (и в начале темы) лажово врезан.
поясни
Порядок операций зацени. Деление-минус-минус.
просто запусти питон и проверь, если бы было так, то -3 / 2 было бы равно -1
$ python
Python 2.6.2 (r262:71600, Oct 3 2009, 01:53:56)
[GCC 4.4.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> a=2
>>> b=3
>>> print(-(-a//b
1
ну, правильно 2/3 с округлением вверх — это единица
шыт. действительно =)
Оставить комментарий
Serab
Только сегодня узнал. Вот в плюсах там всяких целочисленное деление с округлением вверх выглядит такВ питоне тоже можно так, но можно и по-другому, если знать, как там округление происходит.
Спойлер:
Еще и работает для всех b != 0.
Имхо, круто.