| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/01/2011 16:53:07
|
rmendes08
GUJ Master
![[Avatar]](/images/avatar/9ee855f3ce4dd40182183463232e2162.jpg)
Membro desde: 29/05/2008 14:09:28
Mensagens: 1617
Online
|
Alguém sabe se existe um algoritmo O(c) para calcular a função f(0) = 0 , f(x) = x + f(x-1) , para x > 0 ?
This message was edited 1 time. Last update was at 13/01/2011 23:38:45
|
"A Técnica é transformada em Arte por quem a emprega"
"O futuro pertence àqueles que acreditam na beleza de seus sonhos"
Computadores Fazem Arte
http://www.uaijug.com.br
"É importante estabelecer uma estrutura de alto nível, mas isso não significa criar uma infinidade de diagramas de classes detalhados." |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/01/2011 17:17:10
|
orlandocn
Java Ninja
![[Avatar]](/images/avatar/4efc9e02abdab6b6166251918570a307.jpeg)
Membro desde: 30/07/2005 12:42:29
Mensagens: 262
Offline
|
voce quer calcular o valor da fç em um ponto ou tracar o grafico para um intervalo? o intervalo seria de zero ate infinito?
|
CGHP - Certified Go Horse Professional
CFMU - Certified Fanfarrão Masters of the Universe
next target --> CFG - Certified Fanfarrão Guru
"Scrum é apenas XP sem as práticas e técnicas que a fazem funcionar." |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/01/2011 17:23:28
|
regis_hideki
Debugger
Membro desde: 29/03/2010 19:22:50
Mensagens: 51
Offline
|
Sou iniciante em programação, mas, se entendi direito, não é só fazer recursivo?
This message was edited 1 time. Last update was at 13/01/2011 17:24:11
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/01/2011 17:26:11
|
DavidUser
Virtual Machine Man
![[Avatar]](/images/avatar/f21aa9a67ef524410f718cff368a6ff2.jpg)
Membro desde: 07/03/2009 18:36:36
Mensagens: 539
Localização: Goiânia - GO
Offline
|
rmendes08 wrote:Alguém sabe se existe um algoritmo O(c) para calcular a função f(0) = 0 , f(x) = x + f(x-1) , para x > 0 ?
é o mesmo que um fatorial só que com soma:
f(4) = 4 + 3 + 2 + 1 + 0
f(2) = 2 + 1 + 0
O (c) {
if (c == 0)
return 0;
else
return c + O(c-1);
}
|
Cursando Engenharia da Computação na PUC-GO
Técnico em Redes de Dados pela FATESG.
"Você é o que você sabe e não o que você tem"
atletica |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/01/2011 17:29:37
|
drigo.angelo
Virtual Machine Man
![[Avatar]](/images/avatar/15760e7b4618c67f5eb38e6e089b8b38.png)
Membro desde: 19/11/2009 12:17:08
Mensagens: 744
Localização: Uberlândia - MG
Offline
|
Se esse O(c) for referente a métrica de desempenho, acho que utilizar recursividade + array (para evitar retrabalho) é a forma mais eficiente que eu conheço para esses tipos de cálculo...
|
@drigoangelo
IE6 no more
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/01/2011 17:40:54
|
juliocbq
GUJ Expert
![[Avatar]](/images/avatar/153704bb24a28e9a6bb49e8ffde1492e.jpg)
Membro desde: 13/11/2008 12:10:18
Mensagens: 3927
Offline
|
A análise de algoritmos é o coração da ciência da computação. Com ela é possível simplificar um problema até chegar a forma ótima baseada nos custos da execução do programa.
Lembrando que analise de algoritmos não tem nada haver com análise de sistemas. A primeira é o estudo de como otimizar algoritmos.
Aqui tem um artigo muito bom.
http://en.wikipedia.org/wiki/Analysis_of_algorithms
|
www.citrox.com.br |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/01/2011 23:37:33
|
rmendes08
GUJ Master
![[Avatar]](/images/avatar/9ee855f3ce4dd40182183463232e2162.jpg)
Membro desde: 29/05/2008 14:09:28
Mensagens: 1617
Online
|
Obrigado pessoal, felizmente um amigo meu achou a resposta!
Quando eu falei sobre O(c) eu estava sim falando sobre a complexidade. Tanto a solução recursiva quanto a iterativa para esse cálculo tem complexidade O(n), ou seja, de tempo linear, levando em conta a operação de soma. Felizmente, essa função pode ser calculada como S(n) = (n^2 + n) / 2 e assim obtemos uma solução O(c), de tempo constante para qualquer n. É isso aí. Quando tiver um pouco mais de tempo eu posto a demonstração.
|
"A Técnica é transformada em Arte por quem a emprega"
"O futuro pertence àqueles que acreditam na beleza de seus sonhos"
Computadores Fazem Arte
http://www.uaijug.com.br
"É importante estabelecer uma estrutura de alto nível, mas isso não significa criar uma infinidade de diagramas de classes detalhados." |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/01/2011 23:53:03
|
drigo.angelo
Virtual Machine Man
![[Avatar]](/images/avatar/15760e7b4618c67f5eb38e6e089b8b38.png)
Membro desde: 19/11/2009 12:17:08
Mensagens: 744
Localização: Uberlândia - MG
Offline
|
Ah, viajei legalz... ainda não conheço muito dessa notação do Ozão [big O]
E realmente uma solução de complexidade constante é uma simplificação algébrica hehe (tanto tempo sem exercitar isso que é pouco provável que eu chegasse a resposta certa sozinho)...
Agente vai ficando meio "bitolado" colocando algorítmo pra tudo, mesmo quando existem formas bem mais performáticas xD,
|
@drigoangelo
IE6 no more
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/01/2011 11:56:41
|
regis_hideki
Debugger
Membro desde: 29/03/2010 19:22:50
Mensagens: 51
Offline
|
Não tinha nem me tocado no O(c).
Da maneira como o DavidUser desenvolveu a equação, deu para perceber claramente que era a soma de uma PA de razão r = 1. Dado isso, era só pegar a equação da soma dos n primeiros termos de uma PA e fazer as modificações necessárias.
|
|
|
 |
|
|