<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Mariano Guerra's Log (Posts about list)</title><link>http://marianoguerra.org/</link><description></description><atom:link href="http://marianoguerra.org/categories/list.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><lastBuildDate>Mon, 18 Nov 2024 17:56:22 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Project Euler problema 6</title><link>http://marianoguerra.org/posts/200905project-euler-problema-6/</link><dc:creator>Mariano Guerra</dc:creator><description>&lt;p&gt;Lo lei, hice un oneliner en python y no lo corri porque pense que iba a demorar mucho, trate de recordar alguna propiedad pero no me acorde nada, buscando en internet todas eran resoluciones de project euler asi que decidi correrlo por fuerza bruta, termino siendo rapido asi que no me esforce mas:&lt;br&gt;&lt;br&gt;problema:&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;div class="problem_content"&gt; &lt;p&gt;The sum of the squares of the first ten natural numbers is,&lt;/p&gt; &lt;div style="text-align: center;"&gt;1&lt;img src="http://projecteuler.net/index.php?section=problems&amp;amp;id=6" style="display: none;" alt="^("&gt;&lt;sup&gt;2&lt;/sup&gt;&lt;img src="http://projecteuler.net/index.php?section=problems&amp;amp;id=6" style="display: none;" alt=")"&gt; + 2&lt;img src="http://projecteuler.net/index.php?section=problems&amp;amp;id=6" style="display: none;" alt="^("&gt;&lt;sup&gt;2&lt;/sup&gt;&lt;img src="http://projecteuler.net/index.php?section=problems&amp;amp;id=6" style="display: none;" alt=")"&gt; + ... + 10&lt;img src="http://projecteuler.net/index.php?section=problems&amp;amp;id=6" style="display: none;" alt="^("&gt;&lt;sup&gt;2&lt;/sup&gt;&lt;img src="http://projecteuler.net/index.php?section=problems&amp;amp;id=6" style="display: none;" alt=")"&gt; = 385&lt;/div&gt; &lt;p&gt;The square of the sum of the first ten natural numbers is,&lt;/p&gt; &lt;div style="text-align: center;"&gt;(1 + 2 + ... + 10)&lt;img src="http://projecteuler.net/index.php?section=problems&amp;amp;id=6" style="display: none;" alt="^("&gt;&lt;sup&gt;2&lt;/sup&gt;&lt;img src="http://projecteuler.net/index.php?section=problems&amp;amp;id=6" style="display: none;" alt=")"&gt; = 55&lt;img src="http://projecteuler.net/index.php?section=problems&amp;amp;id=6" style="display: none;" alt="^("&gt;&lt;sup&gt;2&lt;/sup&gt;&lt;img src="http://projecteuler.net/index.php?section=problems&amp;amp;id=6" style="display: none;" alt=")"&gt; = 3025&lt;/div&gt; &lt;p&gt;Hence the difference between the sum of the squares of the first ten natural numbers and the square of the sum is 3025 &lt;img src="http://projecteuler.net/images/symbol_minus.gif" alt="−" style="vertical-align: middle;" width="9" border="0" height="3"&gt; 385 = 2640.&lt;/p&gt; &lt;p&gt;Find the difference between the sum of the squares of the first one hundred natural numbers and the square of the sum.&lt;/p&gt;  &lt;/div&gt;&lt;br&gt;&lt;br&gt;python:&lt;br&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; sum(xrange(1, 101)) ** 2 - sum(map(lambda x: x**2, xrange(1, 101)))&lt;br&gt;25164150&lt;br&gt;&lt;br&gt;lisp:&lt;br&gt;&lt;br&gt;[44]&amp;gt; (- (expt (apply #'+ (loop for x from 1 to 100 collect x)) 2) (apply #'+ (loop for x from 1 to 100 collect (expt x 2))))&lt;br&gt;25164150&lt;br&gt;&lt;br&gt;erlang:&lt;br&gt;&lt;br&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="p"&gt;-&lt;/span&gt;&lt;span class="ni"&gt;module&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ej_006&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;br&gt;&lt;span class="p"&gt;-&lt;/span&gt;&lt;span class="ni"&gt;export&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;show&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]).&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;span class="nf"&gt;do_to_range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;Stop&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;Stop&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;Accum&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;Fun&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;Accum&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nv"&gt;Fun&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;Stop&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;br&gt;&lt;span class="nf"&gt;do_to_range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;Start&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;Stop&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;Accum&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;Fun&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;span class="n"&gt;do_to_range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;Start&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;Stop&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;Accum&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nv"&gt;Fun&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;Start&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="nv"&gt;Fun&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;span class="nf"&gt;show&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;span class="nv"&gt;SumOfSquares&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;do_to_range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;fun&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;X&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;X&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nv"&gt;X&lt;/span&gt; &lt;span class="k"&gt;end&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;&lt;br&gt;&lt;span class="nv"&gt;SquareOfSums&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;math&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;pow&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;do_to_range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;fun&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;X&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;X&lt;/span&gt; &lt;span class="k"&gt;end&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;&lt;br&gt;&lt;span class="nv"&gt;SquareOfSums&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nv"&gt;SumOfSquares&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;observaciones:&lt;br&gt;&lt;ul&gt;&lt;li&gt;encontre esta referencia de lisp: http://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node81.html&lt;/li&gt;&lt;li&gt;la exponenciacion en lisp se hace con &lt;span style="font-style: italic;"&gt;expt&lt;/span&gt;&lt;/li&gt;&lt;li&gt;no encontre algo como xrange asi que use el macro de for&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;no me gusta la cantidad de funciones que hay en lisp (y en un solo namespace! :P)&lt;/li&gt;&lt;li&gt;en erlang lo hice un poco mas prolijito porque lo tuve que hacer recursivo&lt;/li&gt;&lt;li&gt;si no fuera por que python no tiene notacion prefija, la resolucion seria casi igual (si hiciese una funcion range con los for)&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;</description><category>bruteforce</category><category>erlang</category><category>euler</category><category>list</category><category>python</category><guid>http://marianoguerra.org/posts/200905project-euler-problema-6/</guid><pubDate>Sat, 09 May 2009 00:18:00 GMT</pubDate></item></channel></rss>