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...



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"