<div dir="ltr">Então, eu não consigo instalar seu modulo no meu sistema, mas supondo que ele esteja correto, principalmente que a função "next_palindrome" retorne exatamente o próximo palindromo maior ou igual ao número...<br>

<br>Para esse seu programa:<div>(1) Entrada: 9. Saída esperada: 9. Saída atual: 11.</div><div><br></div><div>(2) Entrada: 191. Saída esperada: 191. Saída atual: Alguma coisa que não é 191 e fiquei com preguiça de terminar o chinês.</div>

<div><br></div><div>(3) Entrada: 666. Saída esperada: 727. Saída atual: Alguma coisa que não é 727 e fiquei com preguiça de terminar o chinês. Mas logo depois da 1a iteração do while... o $time foi bumpado para 796 - por causa do if((reverse $time) % 2 == 0) - e já passou do 727 e nunca vai voltar para ele....</div>

<div><br></div><div><br></div><div><br></div><div>japa++ pela consideração entre as duas versões do reverse reverse $time. Eu ainda acho que esse trecho ta errado destrói qualquer tentativa de construir uma invariante no algoritmo.</div>

</div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-05-01 22:27 GMT-03:00 Aureliano Guedes <span dir="ltr"><<a href="mailto:guedes_1000@hotmail.com" target="_blank">guedes_1000@hotmail.com</a>></span>:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<div><div dir="ltr">E pronto minha solução sem os bugs que falou: <a href="http://pastebin.com/PQQyg5BK" target="_blank">http://pastebin.com/PQQyg5BK</a><div><br></div><div>Engraçado: teve o melhor desempenho.</div><div>

Um simples detalhe reduziu o tempo de execução pela metade.</div><div><br></div><div>Fazer:</div><div><div><span style="white-space:pre-wrap">                        </span>$time = reverse $time;</div><div><span style="white-space:pre-wrap">                   </span>$time++;</div>

<div><span style="white-space:pre-wrap">                  </span>$time = reverse $time;</div><div><br></div><div>gera um desempenho melhor que fazer:</div><div><br></div><div><div><span style="white-space:pre-wrap">                   </span>$time = reverse (reverse $time++);</div>

</div><div><div class=""><hr>From: <a href="mailto:guedes_1000@hotmail.com" target="_blank">guedes_1000@hotmail.com</a><br>To: <a href="mailto:rio-pm@pm.org" target="_blank">rio-pm@pm.org</a><br></div>Date: Fri, 2 May 2014 00:04:04 +0000<div>

<div class="h5"><br>Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo<br><br>


<div dir="ltr">Bruno, resolvi o problema e segui a sua dica: <a href="http://cpansearch.perl.org/src/ACPGUEDES/Math-Palindrome-undef/lib/Math/Palindrome.pm" target="_blank">http://cpansearch.perl.org/src/ACPGUEDES/Math-Palindrome-undef/lib/Math/Palindrome.pm</a><div>

<br></div><div>O <a href="http://search.cpan.org/~kryde/Math-NumSeq-70/lib/Math/NumSeq/Palindromes.pm" target="_blank">http://search.cpan.org/~kryde/Math-NumSeq-70/lib/Math/NumSeq/Palindromes.pm</a> era muito incompleto!<br>

<br><div><hr>From: <a href="mailto:bruno.buss@gmail.com" target="_blank">bruno.buss@gmail.com</a><br>Date: Mon, 28 Apr 2014 21:24:50 -0300<br>To: <a href="mailto:rio-pm@pm.org" target="_blank">rio-pm@pm.org</a><br>Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo<br>

<br><div dir="ltr">O problema é que quando time() está entre 89 e 96, next_prime($time) retorna 97... e a palindrome(97) retorna 107 - se não errei o chines mental que acabei de fazer - ou seja, pulando um palíndromo primo, que seria a resposta correta. O mesmo problema de antes, sua heurística para tentar pular números na sequencia de primos/palíndromos ainda não está muito boa.<div>



<br></div><div>Mais uma dica: Ao invés de usar aquela formula toda para pegar a 1a/2a metade dos dígitos do numero, porque você não usa a substr()? :-)</div></div><div><br><br><div>

2014-04-27 20:49 GMT-03:00 Aureliano Guedes <span dir="ltr"><<a href="mailto:guedes_1000@hotmail.com" target="_blank">guedes_1000@hotmail.com</a>></span>:<br><blockquote style="border-left:1px #ccc solid;padding-left:1ex">






<div><div dir="ltr">Bruno,<div><br></div><div>Tratei a maioria dos erros e ainda ganhei em desempenho.</div><div>O problema é que tem um bug que não consegui tratar.</div><div><br></div><div>Quando 89 <= time() <= 96 sempre retorna 131 e não 101, mas quando >89 ou <96 retorna corretamente 101.</div>



<div><br></div><div><a href="http://pastebin.com/3QVnbjbP" target="_blank">http://pastebin.com/3QVnbjbP</a><br><br><div><hr>Date: Sun, 27 Apr 2014 14:00:02 -0300<div><div><br>From: <a href="mailto:guedes_1000@hotmail.com" target="_blank">guedes_1000@hotmail.com</a><br>



To: <a href="mailto:rio-pm@pm.org" target="_blank">rio-pm@pm.org</a><br>Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo<br><br>






<div>Buss,<br>
Obrigado por analisar o código. <br>
Realmente eu fiz apenas alguns teste mas nao o suficiente para perceber esses bugs que me falou.<br>
Essa heurística foi apenas experimental.<br>
E ainda pode ser otimizada. <br>
Nao sou muito habilidoso quando se trata de achar esses tipos de erros.<br>
Por exemplo, se na rotina de geração de palíndromo eu verificasse se o palíndromo gerado e par já ganharia no desempenho mas nao resolveria os problemas que citou.<br>
Vou ver o que posso fazer para resolver esses bugs.<br>
 Obrigado pela análise.<br>
<br>
<br>
Bruno Buss <<a href="mailto:bruno.buss@gmail.com" target="_blank">bruno.buss@gmail.com</a>> escreveu:<br>
<br>
</div>
<div>
<div dir="ltr">Olá Aureliano,
<div><br>
</div>
<div>Muito bom seu esforço... mas eu acho que você deveria elaborar e rodar alguns testes unitários para o seu código. :-)</div>
<div><br>
</div>
<div><br>
</div>
<div>Por exemplo, o seu código anterior (com as subs _par e _impar), imprimia "101" se o time() fosse "102". A resposta correta seria "131". A sua "heurística geradora de palindromos" andou para trás nesse caso... me parece um erro de design do algoritmo.</div>




<div><br>
</div>
<div><br>
</div>
<div>Essa sua nova versão:</div>
<div>* Imprime "13" se o time() for "13"... e 13 nem é palindromo! O resultado correto nesse caso é "101". Mas isso é só um erro no seu loop principal, que se for primo direto no começo ele nem verifica se é palindromo mas já imprime direto.</div>




<div><br>
</div>
<div>* Imprime "1003001" se o time() for 96... o que me parece meio longe do resultado esperado, "101". Nesse caso, emho, o problema é a sua "heurística geradora de palindromos".</div>
<div><br>
</div>
<div><br>
</div>
<div><br>
</div>
<div>Ou seja, a eficiência do algoritmo é muito importante... mas sua corretude deve vir antes. (A menos é claro que estejamos falando de algoritmos aproximativos ou heurísticas para problemas intratáveis :-)</div>
<div><br>
</div>
<div>Nesse caso em específico, parece que essa sua função geradora de palindromos é de fato uma heurística para dar bumps na sequência e economizar verificações... mas como observado você corre o risco de pular algo que não deveria.</div>




<div><br>
</div>
<div>Só como dúvida, essa sua heurística é fundamentada em algum resultado matemático de fato ou apenas experimental?</div>
<div><br>
</div>
<div><br>
</div>
<div>[ ]'s</div>
<div>Buss</div>
<div><br>
</div>
<div><br>
<br>
<div>2014-04-27 3:06 GMT-03:00 Aureliano Guedes <span dir="ltr">
<<a href="mailto:guedes_1000@hotmail.com" target="_blank">guedes_1000@hotmail.com</a>></span>:<br>
<blockquote style="border-left:1px #ccc solid;padding-left:1ex">
<div>
<div dir="ltr">Esquece a ultima versão.
<div>Divisão é pesado para o processador. </div>
<div><br>
</div>
<div>Fiz uma versão menor com menos divisões que parece ter uma melhor performance.</div>
<div><br>
</div>
<div><a href="http://pastebin.com/jrjEv3eh" target="_blank">http://pastebin.com/jrjEv3eh</a><br>
<div><br>
</div>
<div>
<div>
<hr>
From: <a href="mailto:guedes_1000@hotmail.com" target="_blank">guedes_1000@hotmail.com</a><br>
To: <a href="mailto:rio-pm@pm.org" target="_blank">rio-pm@pm.org</a><br>
Date: Sun, 27 Apr 2014 02:44:57 +0000</div>
<div>
<div><br>
Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo<br>
<br>
<div dir="ltr">Então tenho essa versão que executou em 1s.
<div><br>
</div>
<div><a href="http://pastebin.com/DLdPwAkp" target="_blank">http://pastebin.com/DLdPwAkp</a><br>
<br>
<div>
<hr>
From: <a href="mailto:blabos@gmail.com" target="_blank">blabos@gmail.com</a><br>
Date: Sat, 26 Apr 2014 18:39:15 -0300<br>
To: <a href="mailto:rio-pm@pm.org" target="_blank">rio-pm@pm.org</a><br>
Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo<br>
<br>
<div dir="ltr">Vamos dar um desconto por causa do "primo".</div>
<div><br>
<br>
<div>2014-04-25 23:26 GMT-03:00 Junior Moraes <span dir="ltr"><<a href="mailto:juniiior182@gmail.com" target="_blank">juniiior182@gmail.com</a>></span>:<br>
<blockquote style="border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">Hi.
<div><br>
</div>
<div>Se for válido usar módulos externos, dá pra implementar com o Math::Prime::XS para ficar mais performático. :-)</div>
<div><br>
</div>
<div>[]'s</div>
</div>
<div><br>
<br>
<div>Em 25 de abril de 2014 23:21, Aureliano Guedes <span dir="ltr"><<a href="mailto:guedes_1000@hotmail.com" target="_blank">guedes_1000@hotmail.com</a>></span> escreveu:
<div>
<div><br>
<blockquote style="border-left:1px #ccc solid;padding-left:1ex">
<div>
<div dir="ltr">Não fiz em poucas linhas, mas fis em poucos segundos: <a href="http://pastebin.com/DLdPwAkp" target="_blank">http://pastebin.com/DLdPwAkp</a><br>
<br>
<div>
<hr>
Date: Tue, 22 Apr 2014 15:09:22 -0300
<div>
<div><br>
From: <a href="mailto:guedes_1000@hotmail.com" target="_blank">guedes_1000@hotmail.com</a><br>
To: <a href="mailto:rio-pm@pm.org" target="_blank">rio-pm@pm.org</a><br>
Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo<br>
<br>
<div>Claro que esta. Mas nao consegui fazer o que o que o Bablos sugeriu em uma única linha.<br>
<br>
Vinícius Miasato <<a href="mailto:viniciusmiasato@gmail.com" target="_blank">viniciusmiasato@gmail.com</a>> escreveu:<br>
<br>
</div>
<div>
<div dir="ltr">
<div>
<div>Opa,<br>
<br>
</div>
parabéns por aceitar o desafio e levá-lo até o fim! Não sei se o código funciona, mas o jogo de GOLF ainda está de pé?<br>
<br>
</div>
atenciosamente,<br>
Vinícius Miasato<br>
</div>
<div><br>
<br>
<div>Em 22 de abril de 2014 13:13, Aureliano Guedes <span dir="ltr"><<a href="mailto:guedes_1000@hotmail.com" target="_blank">guedes_1000@hotmail.com</a>></span> escreveu:<br>
<blockquote style="border-left:1px #ccc solid;padding-left:1ex">
<div>
<div dir="ltr"><a href="http://ideone.com/LjvMRz" target="_blank">http://ideone.com/LjvMRz</a>
<div><br>
</div>
<div>4:30 rodando no dinossauro (AMD Athlon 1.6GHz, 2GB Ram)</div>
<div><br>
<div>
<div>
<hr>
Date: Thu, 17 Apr 2014 22:25:48 -0300<br>
From: <a href="mailto:guedes_1000@hotmail.com" target="_blank">guedes_1000@hotmail.com</a><br>
To: <a href="mailto:rio-pm@pm.org" target="_blank">rio-pm@pm.org</a><br>
Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo</div>
<div>
<div><br>
<br>
<div>Boa ideia. Vou tentar.<br>
<br>
Blabos de Blebe <<a href="mailto:blabos@gmail.com" target="_blank">blabos@gmail.com</a>> escreveu:<br>
<br>
</div>
<div>
<div dir="ltr">Que tal o menor palíndromo primo maior que time()?</div>
<div><br>
<br>
<div>2014-04-17 22:02 GMT-03:00 Aureliano Guedes <span dir="ltr"><<a href="mailto:guedes_1000@hotmail.com" target="_blank">guedes_1000@hotmail.com</a>></span>:<br>
<blockquote style="border-left:1px #ccc solid;padding-left:1ex">
<div>
<div>Pode ficar menor.<br>
say '906609'<br>
<br>
Tiago Peczenyj <<a href="mailto:tiago.peczenyj@gmail.com" target="_blank">tiago.peczenyj@gmail.com</a>> escreveu:<br>
<br>
</div>
<div>
<div>
<div>
<div dir="ltr">sub palindromo { <span style="font-family:arial,sans-serif;font-size:13px">906609 }</span></div>
<div><br>
<br>
<div>2014-04-17 21:45 GMT-03:00 Aureliano Guedes <span dir="ltr"><<a href="mailto:guedes_1000@hotmail.com" target="_blank">guedes_1000@hotmail.com</a>></span>:<br>
<blockquote style="border-left:1px #ccc solid;padding-left:1ex">
<div>
<div dir="ltr">Ola monges,
<div><br>
</div>
<div>Nos últimos meses tenho visto nosso grupo um pouco parado.</div>
<div>E como estamos em véspera de pascoa.</div>
<div>Proponho uma brincadeira.</div>
<div>Jogar golf com o Desafio do Maior Palíndromo.</div>
<div><br>
</div>
<div>O desafio é simples, achar o maior número palíndromo (ou seja, quando lido de trás pra frente continua o mesmo) que seja resultado de uma multiplicação de dois números de 3 dígitos.</div>
<div><br>
</div>
<div>O resultado deverá ser: 906609</div>
<div><br>
</div>
<div>Eis a minha tacada:</div>
<div><br>
</div>
<div>for(my$i=100;$i<1000;$i++){for(100..999){$_[0]=$_*$i if(($_*$i==reverse($_*$i))&&($_*$i>=$_[0]))}}say$_[0]</div>
</div>
</div>
<br>
_______________________________________________<br>
Rio-pm mailing list<br>
<a href="mailto:Rio-pm@pm.org" target="_blank">Rio-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><br>
</blockquote>
</div>
<br>
<br clear="all">
<div><br>
</div>
-- <br>
Tiago B. Peczenyj<br>
Linux User #405772<br>
<br>
<a href="http://about.me/peczenyj" target="_blank">http://about.me/peczenyj</a> </div>
</div>
</div>
</div>
</div>
<br>
_______________________________________________<br>
Rio-pm mailing list<br>
<a href="mailto:Rio-pm@pm.org" target="_blank">Rio-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><br>
</blockquote>
</div>
<br>
</div>
</div>
<br>
_______________________________________________ Rio-pm mailing list <a href="mailto:Rio-pm@pm.org" target="_blank">
Rio-pm@pm.org</a> <a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">
http://mail.pm.org/mailman/listinfo/rio-pm</a><br>
_______________________________________________ Rio-pm mailing list <a href="mailto:Rio-pm@pm.org" target="_blank">
Rio-pm@pm.org</a> <a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">
http://mail.pm.org/mailman/listinfo/rio-pm</a></div>
</div>
</div>
</div>
</div>
</div>
<br>
_______________________________________________<br>
Rio-pm mailing list<br>
<a href="mailto:Rio-pm@pm.org" target="_blank">Rio-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><br>
</blockquote>
</div>
<br>
</div>
</div>
<br>
_______________________________________________ Rio-pm mailing list <a href="mailto:Rio-pm@pm.org" target="_blank">
Rio-pm@pm.org</a> <a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">
http://mail.pm.org/mailman/listinfo/rio-pm</a><br>
_______________________________________________ Rio-pm mailing list <a href="mailto:Rio-pm@pm.org" target="_blank">
Rio-pm@pm.org</a> <a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">
http://mail.pm.org/mailman/listinfo/rio-pm</a></div>
</div>
</div>
</div>
</div>
<br>
_______________________________________________<br>
Rio-pm mailing list<br>
<a href="mailto:Rio-pm@pm.org" target="_blank">Rio-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><br>
</blockquote>
</div>
</div>
</div>
<br>
</div>
<br>
_______________________________________________<br>
Rio-pm mailing list<br>
<a href="mailto:Rio-pm@pm.org" target="_blank">Rio-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><br>
</blockquote>
</div>
<br>
</div>
<br>
_______________________________________________ Rio-pm mailing list <a href="mailto:Rio-pm@pm.org" target="_blank">
Rio-pm@pm.org</a> <a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">
http://mail.pm.org/mailman/listinfo/rio-pm</a></div>
</div>
</div>
<br>
_______________________________________________ Rio-pm mailing list <a href="mailto:Rio-pm@pm.org" target="_blank">
Rio-pm@pm.org</a> <a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">
http://mail.pm.org/mailman/listinfo/rio-pm</a></div>
</div>
</div>
</div>
</div>
</div>
<br>
_______________________________________________<br>
Rio-pm mailing list<br>
<a href="mailto:Rio-pm@pm.org" target="_blank">Rio-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><br>
</blockquote>
</div>
<br>
<br clear="all">
<div><br>
</div>
-- <br>
Bruno C. Buss<br>
<a href="http://www.brunobuss.net" target="_blank">http://www.brunobuss.net</a> </div>
</div>
</div>


<br>_______________________________________________
Rio-pm mailing list
<a href="mailto:Rio-pm@pm.org" target="_blank">Rio-pm@pm.org</a>
<a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><br>_______________________________________________
Rio-pm mailing list
<a href="mailto:Rio-pm@pm.org" target="_blank">Rio-pm@pm.org</a>
<a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a></div></div></div></div>                                       </div></div>
<br>_______________________________________________<br>
Rio-pm mailing list<br>
<a href="mailto:Rio-pm@pm.org" target="_blank">Rio-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><br></blockquote></div><br><br clear="all"><div><br></div>-- <br>Bruno C. Buss<br><a href="http://www.brunobuss.net" target="_blank">http://www.brunobuss.net</a>
</div>
<br>_______________________________________________
Rio-pm mailing list
<a href="mailto:Rio-pm@pm.org" target="_blank">Rio-pm@pm.org</a>
<a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a></div></div>                                       </div>
<br>_______________________________________________
Rio-pm mailing list
<a href="mailto:Rio-pm@pm.org" target="_blank">Rio-pm@pm.org</a>
<a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a></div></div></div></div>                                       </div></div>
<br>_______________________________________________<br>
Rio-pm mailing list<br>
<a href="mailto:Rio-pm@pm.org">Rio-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><br></blockquote></div><br><br clear="all"><div><br></div>-- <br>Bruno C. Buss<br><a href="http://www.brunobuss.net" target="_blank">http://www.brunobuss.net</a>
</div>