<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comentarios en: El Proyecto Euler: Problema 4</title>
	<atom:link href="http://www.pablasso.com/2009/02/06/el-proyecto-euler-problema-4/feed" rel="self" type="application/rss+xml" />
	<link>http://www.pablasso.com/2009/02/06/el-proyecto-euler-problema-4</link>
	<description>Sobre desarrollo de software y ñoñadas</description>
	<lastBuildDate>Sat, 11 Feb 2012 02:01:28 +0300</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Por: mairafraire88</title>
		<link>http://www.pablasso.com/2009/02/06/el-proyecto-euler-problema-4#comment-86503</link>
		<dc:creator>mairafraire88</dc:creator>
		<pubDate>Mon, 18 Jul 2011 23:02:09 +0000</pubDate>
		<guid isPermaLink="false">http://www.pablasso.com/?p=1070#comment-86503</guid>
		<description>hola necesito resolver ese problema en java y el numero 2  y 7 plis :) ayuda k no se k aser :)</description>
		<content:encoded><![CDATA[<p>hola necesito resolver ese problema en java y el numero 2  y 7 plis :) ayuda k no se k aser :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Proyecto Euler &#124; Buanzolandia</title>
		<link>http://www.pablasso.com/2009/02/06/el-proyecto-euler-problema-4#comment-45155</link>
		<dc:creator>Proyecto Euler &#124; Buanzolandia</dc:creator>
		<pubDate>Sun, 15 Feb 2009 21:11:06 +0000</pubDate>
		<guid isPermaLink="false">http://www.pablasso.com/?p=1070#comment-45155</guid>
		<description>[...] unos días en un post de Pablo, me quedé super enganchado con los problemas del Proyecto Euler. Para los que no tengan idea de [...]</description>
		<content:encoded><![CDATA[<p>[...] unos días en un post de Pablo, me quedé super enganchado con los problemas del Proyecto Euler. Para los que no tengan idea de [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: &#160; El Proyecto Euler: Problema 4&#160;by&#160;Pecesama.Net [weblog]</title>
		<link>http://www.pablasso.com/2009/02/06/el-proyecto-euler-problema-4#comment-45111</link>
		<dc:creator>&#160; El Proyecto Euler: Problema 4&#160;by&#160;Pecesama.Net [weblog]</dc:creator>
		<pubDate>Fri, 13 Feb 2009 16:36:58 +0000</pubDate>
		<guid isPermaLink="false">http://www.pablasso.com/?p=1070#comment-45111</guid>
		<description>[...] estan interesados en el Proyecto Euler, Pablo tiene un excelente post sobre el problema 4, además en los comentarios Victor a dado muy buenos aportes para optimizar la solución. Si no han [...]</description>
		<content:encoded><![CDATA[<p>[...] estan interesados en el Proyecto Euler, Pablo tiene un excelente post sobre el problema 4, además en los comentarios Victor a dado muy buenos aportes para optimizar la solución. Si no han [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: pecesama</title>
		<link>http://www.pablasso.com/2009/02/06/el-proyecto-euler-problema-4#comment-45110</link>
		<dc:creator>pecesama</dc:creator>
		<pubDate>Fri, 13 Feb 2009 16:27:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.pablasso.com/?p=1070#comment-45110</guid>
		<description>Que interesante se puso este ejercicio, todo un buen ejemplo didáctico sobre optimización.</description>
		<content:encoded><![CDATA[<p>Que interesante se puso este ejercicio, todo un buen ejemplo didáctico sobre optimización.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: pablasso</title>
		<link>http://www.pablasso.com/2009/02/06/el-proyecto-euler-problema-4#comment-45104</link>
		<dc:creator>pablasso</dc:creator>
		<pubDate>Fri, 13 Feb 2009 13:02:09 +0000</pubDate>
		<guid isPermaLink="false">http://www.pablasso.com/?p=1070#comment-45104</guid>
		<description>Que buena, así reduces muchísimo las iteraciones externas, aquí se van de 900 iteraciones hasta 86 (y el consecuente ahorro en iteraciones internas)

El tiempo que me tarda en ejecutar es el mismo, pero es una gran mejora.</description>
		<content:encoded><![CDATA[<p>Que buena, así reduces muchísimo las iteraciones externas, aquí se van de 900 iteraciones hasta 86 (y el consecuente ahorro en iteraciones internas)</p>
<p>El tiempo que me tarda en ejecutar es el mismo, pero es una gran mejora.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Victor Braco</title>
		<link>http://www.pablasso.com/2009/02/06/el-proyecto-euler-problema-4#comment-45103</link>
		<dc:creator>Victor Braco</dc:creator>
		<pubDate>Fri, 13 Feb 2009 12:34:48 +0000</pubDate>
		<guid isPermaLink="false">http://www.pablasso.com/?p=1070#comment-45103</guid>
		<description>Ahora no estoy seguro de esto, le veo sentido pero no estoy totalmente seguro que sea del todo correcto. Se trata de cortar el bucle externo, haciendo uso de este ejemplo:

Si se tiene que la multiplicacion 995 x 517 es un capicua, entonces habria que guardar el 517 en una variable para hacer que el bucle más grande, no baje de ese número, porque ya sabriamos que los resultados van a ser números más pequeños.

&lt;pre lang=&quot;c&quot; line=&quot;1&quot;&gt;
main()
{
	int i, j, h, x, r = 0;
 	h=99;
	for ( i = 999; i &gt; h; i-- )
	{
		for ( j = i; j &gt; 99; j-- )
		{
			x = i * j;
                        if (x &lt; r) break;

			if ( is_palindrome(x) ) {
				if(x &gt; r){
					r = x;
					h=j;
				}
			}
		}
	}
 
	printf(&quot;%d&quot;, r);
	return 0;
}
&lt;/pre&gt;</description>
		<content:encoded><![CDATA[<p>Ahora no estoy seguro de esto, le veo sentido pero no estoy totalmente seguro que sea del todo correcto. Se trata de cortar el bucle externo, haciendo uso de este ejemplo:</p>
<p>Si se tiene que la multiplicacion 995 x 517 es un capicua, entonces habria que guardar el 517 en una variable para hacer que el bucle más grande, no baje de ese número, porque ya sabriamos que los resultados van a ser números más pequeños.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
</pre></td><td class="code"><pre class="c">main<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#123;</span>
	<span style="color: #993333;">int</span> i, j, h, x, r <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">0</span>;
 	h<span style="color: #66cc66;">=</span><span style="color: #cc66cc;">99</span>;
	<span style="color: #b1b100;">for</span> <span style="color: #66cc66;">&#40;</span> i <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">999</span>; i &gt; h; i<span style="color: #66cc66;">--</span> <span style="color: #66cc66;">&#41;</span>
	<span style="color: #66cc66;">&#123;</span>
		<span style="color: #b1b100;">for</span> <span style="color: #66cc66;">&#40;</span> j <span style="color: #66cc66;">=</span> i; j &gt; <span style="color: #cc66cc;">99</span>; j<span style="color: #66cc66;">--</span> <span style="color: #66cc66;">&#41;</span>
		<span style="color: #66cc66;">&#123;</span>
			x <span style="color: #66cc66;">=</span> i <span style="color: #66cc66;">*</span> j;
                        <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>x &lt; r<span style="color: #66cc66;">&#41;</span> <span style="color: #000000; font-weight: bold;">break</span>;
&nbsp;
			<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span> is_palindrome<span style="color: #66cc66;">&#40;</span>x<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
				<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>x &gt; r<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
					r <span style="color: #66cc66;">=</span> x;
					h<span style="color: #66cc66;">=</span>j;
				<span style="color: #66cc66;">&#125;</span>
			<span style="color: #66cc66;">&#125;</span>
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span>
&nbsp;
	<span style="color: #000066;">printf</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;%d&quot;</span>, r<span style="color: #66cc66;">&#41;</span>;
	<span style="color: #b1b100;">return</span> <span style="color: #cc66cc;">0</span>;
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

]]></content:encoded>
	</item>
	<item>
		<title>Por: pablasso</title>
		<link>http://www.pablasso.com/2009/02/06/el-proyecto-euler-problema-4#comment-45102</link>
		<dc:creator>pablasso</dc:creator>
		<pubDate>Fri, 13 Feb 2009 12:18:33 +0000</pubDate>
		<guid isPermaLink="false">http://www.pablasso.com/?p=1070#comment-45102</guid>
		<description>Excelente Victor!

Ahora el programa solo hace poco mas de 6000 iteraciones internas, cuando antes hacia mas de 400,000 y originalmente mas de 900,000. Ahora no se me ocurre que otra cosa mejorarle, tarda apenas 0.002s :-)</description>
		<content:encoded><![CDATA[<p>Excelente Victor!</p>
<p>Ahora el programa solo hace poco mas de 6000 iteraciones internas, cuando antes hacia mas de 400,000 y originalmente mas de 900,000. Ahora no se me ocurre que otra cosa mejorarle, tarda apenas 0.002s :-)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Victor Braco</title>
		<link>http://www.pablasso.com/2009/02/06/el-proyecto-euler-problema-4#comment-45101</link>
		<dc:creator>Victor Braco</dc:creator>
		<pubDate>Fri, 13 Feb 2009 11:52:20 +0000</pubDate>
		<guid isPermaLink="false">http://www.pablasso.com/?p=1070#comment-45101</guid>
		<description>Jeje, tengo otra...creo para la segunda recomendación:
No se si es exactamente igual en C, si fuera PHP seria break; cualquier cosa tu lo retocas.

Podemos evitar hacer multiplicaciones innecesarias, cortando el bucle interno una vez que la multiplicacion de los 2 numeros es menor al menuro guardado en r, es decir, por ejemplo si r=987789 y la multiplicaciones de X y Y es un número menor a ese, no tiene sentido seguir bajando Y porque siempre van a ser menores a ese.

&lt;pre lang=&quot;c&quot; line=&quot;9&quot;&gt;
			x = i * j;
			if (x &lt; r) break; 
&lt;/pre&gt;</description>
		<content:encoded><![CDATA[<p>Jeje, tengo otra&#8230;creo para la segunda recomendación:<br />
No se si es exactamente igual en C, si fuera PHP seria break; cualquier cosa tu lo retocas.</p>
<p>Podemos evitar hacer multiplicaciones innecesarias, cortando el bucle interno una vez que la multiplicacion de los 2 numeros es menor al menuro guardado en r, es decir, por ejemplo si r=987789 y la multiplicaciones de X y Y es un número menor a ese, no tiene sentido seguir bajando Y porque siempre van a ser menores a ese.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>9
10
</pre></td><td class="code"><pre class="c">			x <span style="color: #66cc66;">=</span> i <span style="color: #66cc66;">*</span> j;
			<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>x &lt; r<span style="color: #66cc66;">&#41;</span> <span style="color: #000000; font-weight: bold;">break</span>;</pre></td></tr></table></div>

]]></content:encoded>
	</item>
	<item>
		<title>Por: pablasso</title>
		<link>http://www.pablasso.com/2009/02/06/el-proyecto-euler-problema-4#comment-45094</link>
		<dc:creator>pablasso</dc:creator>
		<pubDate>Fri, 13 Feb 2009 03:41:25 +0000</pubDate>
		<guid isPermaLink="false">http://www.pablasso.com/?p=1070#comment-45094</guid>
		<description>Genial Victor! Esto baja el tiempo de ejecución promedio desde los .070s hasta los .035, justo por la mitad.</description>
		<content:encoded><![CDATA[<p>Genial Victor! Esto baja el tiempo de ejecución promedio desde los .070s hasta los .035, justo por la mitad.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Victor Braco</title>
		<link>http://www.pablasso.com/2009/02/06/el-proyecto-euler-problema-4#comment-45092</link>
		<dc:creator>Victor Braco</dc:creator>
		<pubDate>Fri, 13 Feb 2009 02:36:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.pablasso.com/?p=1070#comment-45092</guid>
		<description>trabajando un poquito con tu código sobre la primera recomendacion, que era de no repetir las multiplicaciónes, esto queda sencillo cambiando el valor con el que empieza el bucle interno. En vez de 999, que comienze con el valor del indice i.

&lt;pre lang=&quot;c&quot; line=&quot;1&quot;&gt;
main()
{
	int i, j, x, r = 0;
 
	for ( i = 999; i &gt; 99; i-- )
	{
		for ( j = i; j &gt; 99; j-- )
		{
			x = i * j;
 
			if ( is_palindrome(x) ) {
				r = x &gt; r ? x : r;
			}
		}
	}
 
	printf(&quot;%d&quot;, r);
	return 0;
}
&lt;/pre&gt;</description>
		<content:encoded><![CDATA[<p>trabajando un poquito con tu código sobre la primera recomendacion, que era de no repetir las multiplicaciónes, esto queda sencillo cambiando el valor con el que empieza el bucle interno. En vez de 999, que comienze con el valor del indice i.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
</pre></td><td class="code"><pre class="c">main<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#123;</span>
	<span style="color: #993333;">int</span> i, j, x, r <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">0</span>;
&nbsp;
	<span style="color: #b1b100;">for</span> <span style="color: #66cc66;">&#40;</span> i <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">999</span>; i &gt; <span style="color: #cc66cc;">99</span>; i<span style="color: #66cc66;">--</span> <span style="color: #66cc66;">&#41;</span>
	<span style="color: #66cc66;">&#123;</span>
		<span style="color: #b1b100;">for</span> <span style="color: #66cc66;">&#40;</span> j <span style="color: #66cc66;">=</span> i; j &gt; <span style="color: #cc66cc;">99</span>; j<span style="color: #66cc66;">--</span> <span style="color: #66cc66;">&#41;</span>
		<span style="color: #66cc66;">&#123;</span>
			x <span style="color: #66cc66;">=</span> i <span style="color: #66cc66;">*</span> j;
&nbsp;
			<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span> is_palindrome<span style="color: #66cc66;">&#40;</span>x<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
				r <span style="color: #66cc66;">=</span> x &gt; r ? x <span style="color: #66cc66;">:</span> r;
			<span style="color: #66cc66;">&#125;</span>
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span>
&nbsp;
	<span style="color: #000066;">printf</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;%d&quot;</span>, r<span style="color: #66cc66;">&#41;</span>;
	<span style="color: #b1b100;">return</span> <span style="color: #cc66cc;">0</span>;
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

]]></content:encoded>
	</item>
</channel>
</rss>

