//Piso do logaritmo!!

1. //Piso do logaritmo!!

FABIO HEROLD RODRIGUES
FABIOHR

(usa Ubuntu)

Enviado em 04/05/2012 - 21:44h

Ola Pessoal. Preciso criar uma função recursiva que calcule o piso do logaritmo de N na base 2. Exemplo: o piso de 3.99 eh 3. Alguem com alguma ideia de como deve ser tal função em c?


  


2. Re: //Piso do logaritmo!!

Perfil removido
removido

(usa Nenhuma)

Enviado em 07/07/2012 - 21:20h

Funções matemáticas para aproximar fracionários em reais:

* teto (ceil): maior inteiro mais próximo a um fracionário (arredondar para mais)
Ex teto (1.99) = 2; teto (2.01) = 3; teto (5) = 5;

* teto (ceil): menor inteiro mais próximo a um fracionário (arredondar para menos)
Ex piso (1.99) = 1; teto (2.01) = 2; piso (5) = 5

Logaritmo "inteiro" de n na base b:

* dividir um inteiro n por b tantas vezes seguidas quantas forem possíveis até n ser menor que b;
* contar essa quantidade de divisões;
* verificar se alguma das divisões não teve resto zero e sinalizar através de alguma variável
* apenas divisão inteira. restos de divisão são ignorados.

Ex: logaritmo de 347 base 3, cujo valor decimal é 5,324284864

347/3=115; 347%3 = 2 (resto 2)
115/3=38; 115%3 = 1 (resto 1)
38/3=12; 38%3 = 2 (resto 2)
12/3=4; 12%3 = 0 (resto 0)
4/3=1; 4%3 = 2 (resto 1)

Conseguiu ser dividido por cinco vezes.

* 5 divisões, portanto a parte inteira é igual a 5;
* este valor já é o piso;
* se uma das divisões não teve resto zero, então este logaritmo não é exato e possuiria uma parte decimal que poderia ser calculada por outro método se fosse o caso;
* neste caso para ser obtido o valor de teto, acrescenta-se 1 "se e somente se" qualquer uma das divisões não teve resto zero. Pelo menos uma.









Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts