Lista de discussão de MAC 2301
[Prévia por Data][Próxima por Data]
[Prévia por Assunto][Próxima por Assunto]
[Índice por Data][Índice por Assunto]
[Envie uma nova mensagem para a lista]
[Responda esta mensagem]
A primeira idéia nem sempre (quase nunca), é a melhor...
- Subject: A primeira idéia nem sempre (quase nunca), é a melhor...
- From: Joe Americo Colombo <jac@ime.usp.br>
- Date: Wed, 28 Mar 2001 16:16:19 -0300
Pessoal,
como vimos em nossa primeira aula, dado um problema e uma solução,
SERÁ QUE NÃO PODEMOS MELHOR ESTA DADA SOLUÇÃO ???
Esta foi a grande pergunta da aula, que vcs não aguentavam mais, não
é ?
Porém o que esperavamos que vcs concluíssem, é que devemos nos
preocupar não só com a corretude de nossas soluções (o é indispensável),
mas tb com a eficiência destas. Isto se torna crítico a medida que
nossos problemas se tornam maiores, e em muitos casos inviabilizam
determinadas soluções.
Para podermos desenvolver boas soluções devemos sempre entender
completamente o problema proposto em todas as suas minucias, e usar isto
em nosso favor.
Por exemplo, podemos ver nos programas em anexo, que resolvem o mesmo
problema (encontrar o n-ésimo primo), de formas diferentes. Em
"primos1.c" a idéia é baseada em que se um número é primo, nenhum número
menor do que ele e diferente de 1 é primo. É claro que isto é verdade,
mas será que não poderíamos dizer algo mais ?
Então, foi desenvolvido "primos2.c", que diz que um número é primo se
ele não for divisível por nenhum outro primo menor do que ele, que reduz
bastante, o número de comparações. Só para exemplificar :
primos2 1000 ==== menor do que 1 s
primos1 1000 ==== 9 s
primos2 10000 ==== 16 s
primos1 5000 ==== 399 s
Tentem executá-los para números maiores ...
Observem os programas, quando estão bem comentados fica muito mais
fácil entendê-los, e com isso poder, quem sabe melhorá-los.
A pergunta que fica é :
SERÁ QUE NÃO PODEMOS MELHOR ESTA SOLUÇÃO ???
Então devemos procurar refletir sempre sobre nossas soluções, não
somente pelo ponto de vista de solucionarmos simplesmente o problema,
mas pelo aspecto de
SERÁ QUE NÃO PODEMOS MELHOR ESTA SOLUÇÃO ???
Um abraço,
Joe.
- Warning
- Could not process part with given Content-Type:
++;name="primos1.c"
- Warning
- Could not process part with given Content-Type:
++;name="primos2.c"