Divisão de teto em Python
-
Divisão de teto usando o operador
//
em Python -
Divisão de teto usando a função
math.ceil()
em Python
A divisão de teto retorna o número inteiro mais próximo maior ou igual à resposta ou quociente atual. Em Python, temos um operador //
para divisão de piso, mas não existe tal operador para a divisão de teto. Este artigo irá falar sobre as diferentes maneiras pelas quais podemos realizar a divisão de teto em Python.
Divisão de teto usando o operador //
em Python
Podemos usar a divisão matemática e de piso //
para realizar a divisão de teto em Python. Consulte o código a seguir.
def ceil(a, b):
return -1 * (-a // b)
print(ceil(1, 2))
print(ceil(5, 4))
print(ceil(7, 2))
print(ceil(5, 3))
print(ceil(121, 10))
Resultado:
1
2
4
2
13
O que fizemos foi o seguinte -
-a // b
retornará a mesma resposta, mas com o sinal oposto ao dea // b
.- Como no lado negativo,
-a
é maior que-(a + 1)
, ondea
é um número positivo, o operador//
retornará um número inteiro apenas menor do que a resposta real. Por exemplo, se a resposta da divisão normal for-1.25
, o valor mínimo retornado será-2
(o menor inteiro mais próximo a-1.25
). - Multiplicando
-1
pela resposta ou resultado intermediário de(-a // b)
, obteremos a resposta com o sinal esperado. O valor retornado é essencialmente o resultado da divisão do teto.
Divisão de teto usando a função math.ceil()
em Python
Python possui um pacote matemático
que é preenchido com funções e utilitários para realizar operações matemáticas. Uma dessas funções é a função ceil()
. Esta função retorna o valor máximo do número passado. Por exemplo, se passarmos 2.3
para esta função, ela retornará 3
. Vamos passar o resultado da divisão normal para esta função e retornar seu valor ceil. Consulte o código a seguir para obter mais exemplos e seu uso.
from math import ceil
print(ceil(1 / 2))
print(ceil(5 / 4))
print(ceil(7 / 2))
print(ceil(5 / 3))
print(ceil(121 / 10))
Resultado:
1
2
4
2
13