[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[obm-l] Divisão com Resto



Essa pergunta vai mais especificamente para o prof. Nicolau Saldanha, pois tem a ver mais com umas notas dele, mas quem souber responder, por favor, sinta-se à vontade :)

Prof. Nicolau Saldanha,


    Recentemente eu entrei numa discussão com colegas de universidade pq a gente tava construindo um aplicativo
que em dado ponto era necessário redefinir a operação de divisão com resto. Eu defendi que era conveniente construir de modo que
o resto seja sempre >=0 pra evitar ambiguidades. Mas outro cara disse que não havia problema algum pois o operador
%  das linguagens de programação retorna números negativos dependendo do caso.
Isso é verdade, embora eu nunca tenha percebido, pelo menos em Java e Python (as linguagens disponíveis nesse computador
no momento). Assim por exemplo a operação -5%-2 retorna -1, e portanto o quociente é dois. Porém nas suas notas sobre primos de mersenne na página 9 vc diz, mais ou menos (e foi o que eu aprendi em teoria dos números):
Dados a, b  inteiros, b !=0, então existe (e são únicos) q, r inteiros, r>=0 tal que a=qb+r. Além disso se b<0,
q= função teto (a/b). Isso significa que -5 dividido por -2 retorna q=3 e r=1, satisfazendo as condições.
Agora a pergunta: Pq essa ambiguidade? Há uma razão especial para as linguagens de programação (pelo menos essas) usarem
uma definição diferente da tradicional (de que o resto deve ser positivo para garantir a unicidade)?

Obrigado,
--
Denisson