Sergio Blog 2.4
Um espaço pessoal de documentação...
Um espaço pessoal de documentação...
[aviso]
Este texto trata do fatorial de um número. Se você busca notícias sobre o resgate dos mineiros do Chile, passe para o próximo texto dos seus feeds. Se você não tem um perfil nerd nem gosta de matemática, pule para o próximo texto dos seus feeds. Você foi avisado!
[/aviso]
Primeiro de tudo, vejamos a definição do fatorial de um número inteiro e positivo (n!):
"Na matemática, o factorial (português europeu) ou fatorial (português brasileiro) de um número natural n, representado por n!, é o produto de todos os inteiros positivos menores ou iguais a n. A notação n! foi introduzida por Christian Kramp em 1808." (Fonte: Wikipedia)
O fatorial de um número aparece, em matemática básica, nos problemas de contagem (Combinações, arranjos e permutações, entre outros). E é algo que sempre me fascinou...
Por exemplo: De quantas maneiras diferentes, 33 mineiros presos numa mina, podem ser resgatados 1 a 1? De 33! maneiras :-)
A maior parte das calculadoras científicas só calcula o fatorial até 69! No Google e em algumas calculadoras científicas (a que tem no meu Android (RealCalc), por exemplo) só calculam até 170!
Clique aqui para ver o fatorial de 170! no Google
Se você precisa (quem precisa realmente disto?) calcular um fatorial maior que 170 vá para o potente Wolfram.
Clique aqui para calcular o fatorial de 100000000000000!
Como você pode viver até hoje sem saber o resultados deste fatorial? :-)
[Atualização]
A explicação sobre esta limitação para o cálculo do fatorial, por algumas calculadoras, é dada pelo João Felipe Mitre num comentário aqui no blogue, que tomei a liberdade de colocar aqui o texto:
"Essa limitação dos programas clássicos de computador está associado ao valor máximo da
representação do número real ser da ordem de 10^308.
E sendo 171! maior que 10^309, esse resultado não pode ser facilmente representado em máquinas 32 bits.
Alguns programas ultrapassam o limite teórico (32 ou 64 bits) utilizando-se de operações especiais (que se não me engano, fazem as contas por partes, dando ao problema precisão arbitrária - tempo computacional arbitrário também :-) - não sei de mais detalhes sobre isso, apesar de já ter usado na prática)".
Mais detalhes:
http://pt.wikilingue.com/ca/Precis%C3%A3o_dupla
[/atualização]
| Imprimir artigo | Esta entrada foi publicado por Sergio Lima, em 14-10-10 , às 08:52:30 . Acompanhe as conversações para esta entrada via RSS 2.0. |
http://sergioflima.pro.br/blogs/htsrv/trackback.php?tb_id=2035
14-10-10 @ 10:52:54
Essa limitação dos programas clássicos de computador associado ao valor máximo do número em precisão dupla.
1.7976931348623157 x 10^308
E sendo 171! maior que 10^309, esse resultado não pode ser facilmente representado em máquinas 32 bits.
Alguns programas ultrapassam o limite teórico (32 ou 64 bits) utilizando-se de operações especiais (que se não me engano, fazem as contas por partes, tornando dando ao problema precisão arbitrária - tempo computacional arbitrário também :-) - não sei de mais detalhes sobre isso, apesar de já ter usado na prática).
Mais detalhes:
http://pt.wikilingue.com/ca/Precis%C3%A3o_dupla
====
Opa Mitre.
Nada como ter amigos mais nerds do que você :-) Vou subir esta informação para o texto, com os devidos créditos.
abs
15-10-10 @ 07:45:27
Tá, mas uma informação precisa de uma correção.
O 10^308 é a precisão dupla em 64-bits.
O texto que tirei como referência é uma tradução desse outro aqui:
http://en.wikipedia.org/wiki/Double_precision
E como pode notar no original, deduz-se que trata-se do 64-bits, o que daria a minha explicação uma difícil compreensão. Na verdade, o limite 32-bits seria precisão quad.
Como também existe uma tal de precisão estendida, acredito que a frase mais correta seria:
Essa limitação dos programas clássicos de computador associado ao valor máximo da representação do número real ser da ordem de 10^308.
E a segunda frase eu corrigiria de:
E sendo 171! maior que 10^309, esse resultado não pode ser facilmente representado em máquinas 32 bits.
Para:
E sendo 171! maior que 10^309, esse número não pode ser representado utilizando as abordagens clássicas em 32-bits.
Embora seja detalhes é sempre bom corrigir isso para evitar propagar o erro.
Um abraço !
01-08-11 @ 23:10:25
Preciso elaborar uma aula de fisica usando o ensino de CTS( ciências, tecnologia e socidade) e gostaria de ulitizar o resgate dos mineiros chilenos, na parte de movimentos (cinemática). Se vc tiver alguma idéia q possa compartilhar eu agradeço.