<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<link rel="self" href="/Atom/" />
	<id>http://billmill.org/</id>
	<title>My Name Rhymes</title>
	<subtitle>Bill Mill blogs irregularly</subtitle>
	<updated>2007-05-27T16:03:00Z</updated>
	<author>
		<name>Bill Mill</name>
		<email>bill.mill@gmail.com</email>
		<uri>http://billmill.org/</uri>
	</author>
	<link href="http://billmill.org/" />
	<entry>
		<title>Answer To The Star Problem</title>
		<link href="http://billmill.org/star_problem.html" />	
		<id>http://billmill.org/star_problem.html</id>
		<updated>2007-05-27T16:03:00Z</updated>
		<summary type="html">A reddit user &lt;a 
href="http://programming.reddit.com/info/1tzdm/comments"&gt;posted&lt;/a&gt; a link to &lt;a  
href="http://savvysolver.com/index.php?title=Six_Pointed_Star_Problem"&gt;a 
puzzle&lt;/a&gt; with the title "Can You Solve This Problem". Not one to refuse a 
challenge, I took it up.&lt;p&gt;
20 minutes later, I found a whole bunch of solutions. The code follows:&lt;p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span style="color: #999988; font-style: italic"&gt;#Problem: arrange the numbers range(1, 13) on a six-point &lt;/span&gt;
&lt;span style="color: #999988; font-style: italic"&gt;#star so that every line adds up to 26. ASCII:&lt;/span&gt;
&lt;span style="color: #999988; font-style: italic"&gt;#              1     2&lt;/span&gt;
&lt;span style="color: #999988; font-style: italic"&gt;#                 3&lt;/span&gt;
&lt;span style="color: #999988; font-style: italic"&gt;#              4     5&lt;/span&gt;
&lt;span style="color: #999988; font-style: italic"&gt;#           6           7&lt;/span&gt;
&lt;span style="color: #999988; font-style: italic"&gt;#              8     9&lt;/span&gt;
&lt;span style="color: #999988; font-style: italic"&gt;#                 10&lt;/span&gt;
&lt;span style="color: #999988; font-style: italic"&gt;#             11     12&lt;/span&gt;
&lt;span style="color: #999988; font-style: italic"&gt;#&lt;/span&gt;
&lt;span style="color: #999988; font-style: italic"&gt;# the vertices are 1,2,6,7,11,12. The 6 lines are &lt;/span&gt;
&lt;span style="color: #999988; font-style: italic"&gt;#(1,3,5,7), (1,4,8,11), &lt;/span&gt;
&lt;span style="color: #999988; font-style: italic"&gt;#(2,3,4,6), (2,5,9,12), &lt;/span&gt;
&lt;span style="color: #999988; font-style: italic"&gt;#(7,9,10,11), &lt;/span&gt;
&lt;span style="color: #999988; font-style: italic"&gt;#(12,10,8,6), &lt;/span&gt;
&lt;span style="color: #999988; font-style: italic"&gt;#&lt;/span&gt;
&lt;span style="color: #999988; font-style: italic"&gt;# So, given the first twelve integers&lt;/span&gt;
ints &lt;span style="font-weight: bold"&gt;=&lt;/span&gt; &lt;span style="color: #999999"&gt;range&lt;/span&gt;(&lt;span style="color: #009999"&gt;1&lt;/span&gt;, &lt;span style="color: #009999"&gt;13&lt;/span&gt;)
&lt;span style="color: #999988; font-style: italic"&gt;#&lt;/span&gt;
&lt;span style="color: #999988; font-style: italic"&gt;# we can test if we have a satisfied solution:&lt;/span&gt;
&lt;span style="font-weight: bold"&gt;def&lt;/span&gt; &lt;span style="color: #990000; font-weight: bold"&gt;solved&lt;/span&gt;(perm):
    &lt;span style="color: #999988; font-style: italic"&gt;#lines are the same as above, but with one subtracted from each number to&lt;/span&gt;
    &lt;span style="color: #999988; font-style: italic"&gt;#make them into array indices&lt;/span&gt;
    lines &lt;span style="font-weight: bold"&gt;=&lt;/span&gt; [(&lt;span style="color: #009999"&gt;0&lt;/span&gt;,&lt;span style="color: #009999"&gt;2&lt;/span&gt;,&lt;span style="color: #009999"&gt;4&lt;/span&gt;,&lt;span style="color: #009999"&gt;6&lt;/span&gt;), (&lt;span style="color: #009999"&gt;0&lt;/span&gt;,&lt;span style="color: #009999"&gt;3&lt;/span&gt;,&lt;span style="color: #009999"&gt;7&lt;/span&gt;,&lt;span style="color: #009999"&gt;10&lt;/span&gt;), 
    (&lt;span style="color: #009999"&gt;1&lt;/span&gt;,&lt;span style="color: #009999"&gt;2&lt;/span&gt;,&lt;span style="color: #009999"&gt;3&lt;/span&gt;,&lt;span style="color: #009999"&gt;5&lt;/span&gt;), (&lt;span style="color: #009999"&gt;1&lt;/span&gt;,&lt;span style="color: #009999"&gt;4&lt;/span&gt;,&lt;span style="color: #009999"&gt;8&lt;/span&gt;,&lt;span style="color: #009999"&gt;11&lt;/span&gt;), 
    (&lt;span style="color: #009999"&gt;6&lt;/span&gt;,&lt;span style="color: #009999"&gt;8&lt;/span&gt;,&lt;span style="color: #009999"&gt;9&lt;/span&gt;,&lt;span style="color: #009999"&gt;10&lt;/span&gt;), 
    (&lt;span style="color: #009999"&gt;11&lt;/span&gt;,&lt;span style="color: #009999"&gt;9&lt;/span&gt;,&lt;span style="color: #009999"&gt;7&lt;/span&gt;,&lt;span style="color: #009999"&gt;5&lt;/span&gt;)]
    &lt;span style="font-weight: bold"&gt;for&lt;/span&gt; line &lt;span style="font-weight: bold"&gt;in&lt;/span&gt; lines:
        &lt;span style="font-weight: bold"&gt;if&lt;/span&gt; &lt;span style="color: #999999"&gt;sum&lt;/span&gt;(perm[i] &lt;span style="font-weight: bold"&gt;for&lt;/span&gt; i &lt;span style="font-weight: bold"&gt;in&lt;/span&gt; line) &lt;span style="font-weight: bold"&gt;!=&lt;/span&gt; &lt;span style="color: #009999"&gt;26&lt;/span&gt;:
            &lt;span style="font-weight: bold"&gt;return&lt;/span&gt; &lt;span style="color: #999999"&gt;False&lt;/span&gt;
    &lt;span style="font-weight: bold"&gt;return&lt;/span&gt; &lt;span style="color: #999999"&gt;True&lt;/span&gt;

&lt;span style="color: #999988; font-style: italic"&gt;#and, as a gut check, let&amp;#39;s figure out a way to print it&lt;/span&gt;
&lt;span style="font-weight: bold"&gt;def&lt;/span&gt; &lt;span style="color: #990000; font-weight: bold"&gt;pretty_print_star&lt;/span&gt;(permutation):
    &lt;span style="font-weight: bold"&gt;print&lt;/span&gt; &lt;span style="color: #bb8844"&gt;&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
&lt;span style="color: #bb8844"&gt;              %s     %s&lt;/span&gt;
&lt;span style="color: #bb8844"&gt;                 %s&lt;/span&gt;
&lt;span style="color: #bb8844"&gt;              %s     %s&lt;/span&gt;
&lt;span style="color: #bb8844"&gt;           %s           %s&lt;/span&gt;
&lt;span style="color: #bb8844"&gt;              %s     %s&lt;/span&gt;
&lt;span style="color: #bb8844"&gt;                 %s&lt;/span&gt;
&lt;span style="color: #bb8844"&gt;              %s     %s&lt;/span&gt;
&lt;span style="color: #bb8844"&gt;&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt; &lt;span style="font-weight: bold"&gt;%&lt;/span&gt; &lt;span style="color: #999999"&gt;tuple&lt;/span&gt;(permutation)

&lt;span style="color: #999988; font-style: italic"&gt;# now! the brute force way to search for solutions would be to try and permute&lt;/span&gt;
&lt;span style="color: #999988; font-style: italic"&gt;# a list of all 12 integers, and wait for &amp;quot;solved&amp;quot; to be true. I&amp;#39;ll import a&lt;/span&gt;
&lt;span style="color: #999988; font-style: italic"&gt;# permute function:&lt;/span&gt;
&lt;span style="color: #999988; font-style: italic"&gt;# (requires probstat: http://probstat.sourceforge.net/ )&lt;/span&gt;
&lt;span style="font-weight: bold"&gt;import&lt;/span&gt; &lt;span style="color: #555555"&gt;probstat&lt;/span&gt;
&lt;span style="font-weight: bold"&gt;for&lt;/span&gt; perm &lt;span style="font-weight: bold"&gt;in&lt;/span&gt; probstat&lt;span style="font-weight: bold"&gt;.&lt;/span&gt;Permutation(ints):
    &lt;span style="font-weight: bold"&gt;if&lt;/span&gt; solved(perm):
        &lt;span style="font-weight: bold"&gt;print&lt;/span&gt; &lt;span style="color: #bb8844"&gt;&amp;quot;found solution!&amp;quot;&lt;/span&gt;
        pretty_print_star(perm)
&lt;/pre&gt;&lt;/div&gt;

</summary>
		<content type="html">A reddit user &lt;a 
href="http://programming.reddit.com/info/1tzdm/comments"&gt;posted&lt;/a&gt; a link to &lt;a  
href="http://savvysolver.com/index.php?title=Six_Pointed_Star_Problem"&gt;a 
puzzle&lt;/a&gt; with the title "Can You Solve This Problem". Not one to refuse a 
challenge, I took it up.&lt;p&gt;
20 minutes later, I found a whole bunch of solutions. The code follows:&lt;p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span style="color: #999988; font-style: italic"&gt;#Problem: arrange the numbers range(1, 13) on a six-point &lt;/span&gt;
&lt;span style="color: #999988; font-style: italic"&gt;#star so that every line adds up to 26. ASCII:&lt;/span&gt;
&lt;span style="color: #999988; font-style: italic"&gt;#              1     2&lt;/span&gt;
&lt;span style="color: #999988; font-style: italic"&gt;#                 3&lt;/span&gt;
&lt;span style="color: #999988; font-style: italic"&gt;#              4     5&lt;/span&gt;
&lt;span style="color: #999988; font-style: italic"&gt;#           6           7&lt;/span&gt;
&lt;span style="color: #999988; font-style: italic"&gt;#              8     9&lt;/span&gt;
&lt;span style="color: #999988; font-style: italic"&gt;#                 10&lt;/span&gt;
&lt;span style="color: #999988; font-style: italic"&gt;#             11     12&lt;/span&gt;
&lt;span style="color: #999988; font-style: italic"&gt;#&lt;/span&gt;
&lt;span style="color: #999988; font-style: italic"&gt;# the vertices are 1,2,6,7,11,12. The 6 lines are &lt;/span&gt;
&lt;span style="color: #999988; font-style: italic"&gt;#(1,3,5,7), (1,4,8,11), &lt;/span&gt;
&lt;span style="color: #999988; font-style: italic"&gt;#(2,3,4,6), (2,5,9,12), &lt;/span&gt;
&lt;span style="color: #999988; font-style: italic"&gt;#(7,9,10,11), &lt;/span&gt;
&lt;span style="color: #999988; font-style: italic"&gt;#(12,10,8,6), &lt;/span&gt;
&lt;span style="color: #999988; font-style: italic"&gt;#&lt;/span&gt;
&lt;span style="color: #999988; font-style: italic"&gt;# So, given the first twelve integers&lt;/span&gt;
ints &lt;span style="font-weight: bold"&gt;=&lt;/span&gt; &lt;span style="color: #999999"&gt;range&lt;/span&gt;(&lt;span style="color: #009999"&gt;1&lt;/span&gt;, &lt;span style="color: #009999"&gt;13&lt;/span&gt;)
&lt;span style="color: #999988; font-style: italic"&gt;#&lt;/span&gt;
&lt;span style="color: #999988; font-style: italic"&gt;# we can test if we have a satisfied solution:&lt;/span&gt;
&lt;span style="font-weight: bold"&gt;def&lt;/span&gt; &lt;span style="color: #990000; font-weight: bold"&gt;solved&lt;/span&gt;(perm):
    &lt;span style="color: #999988; font-style: italic"&gt;#lines are the same as above, but with one subtracted from each number to&lt;/span&gt;
    &lt;span style="color: #999988; font-style: italic"&gt;#make them into array indices&lt;/span&gt;
    lines &lt;span style="font-weight: bold"&gt;=&lt;/span&gt; [(&lt;span style="color: #009999"&gt;0&lt;/span&gt;,&lt;span style="color: #009999"&gt;2&lt;/span&gt;,&lt;span style="color: #009999"&gt;4&lt;/span&gt;,&lt;span style="color: #009999"&gt;6&lt;/span&gt;), (&lt;span style="color: #009999"&gt;0&lt;/span&gt;,&lt;span style="color: #009999"&gt;3&lt;/span&gt;,&lt;span style="color: #009999"&gt;7&lt;/span&gt;,&lt;span style="color: #009999"&gt;10&lt;/span&gt;), 
    (&lt;span style="color: #009999"&gt;1&lt;/span&gt;,&lt;span style="color: #009999"&gt;2&lt;/span&gt;,&lt;span style="color: #009999"&gt;3&lt;/span&gt;,&lt;span style="color: #009999"&gt;5&lt;/span&gt;), (&lt;span style="color: #009999"&gt;1&lt;/span&gt;,&lt;span style="color: #009999"&gt;4&lt;/span&gt;,&lt;span style="color: #009999"&gt;8&lt;/span&gt;,&lt;span style="color: #009999"&gt;11&lt;/span&gt;), 
    (&lt;span style="color: #009999"&gt;6&lt;/span&gt;,&lt;span style="color: #009999"&gt;8&lt;/span&gt;,&lt;span style="color: #009999"&gt;9&lt;/span&gt;,&lt;span style="color: #009999"&gt;10&lt;/span&gt;), 
    (&lt;span style="color: #009999"&gt;11&lt;/span&gt;,&lt;span style="color: #009999"&gt;9&lt;/span&gt;,&lt;span style="color: #009999"&gt;7&lt;/span&gt;,&lt;span style="color: #009999"&gt;5&lt;/span&gt;)]
    &lt;span style="font-weight: bold"&gt;for&lt;/span&gt; line &lt;span style="font-weight: bold"&gt;in&lt;/span&gt; lines:
        &lt;span style="font-weight: bold"&gt;if&lt;/span&gt; &lt;span style="color: #999999"&gt;sum&lt;/span&gt;(perm[i] &lt;span style="font-weight: bold"&gt;for&lt;/span&gt; i &lt;span style="font-weight: bold"&gt;in&lt;/span&gt; line) &lt;span style="font-weight: bold"&gt;!=&lt;/span&gt; &lt;span style="color: #009999"&gt;26&lt;/span&gt;:
            &lt;span style="font-weight: bold"&gt;return&lt;/span&gt; &lt;span style="color: #999999"&gt;False&lt;/span&gt;
    &lt;span style="font-weight: bold"&gt;return&lt;/span&gt; &lt;span style="color: #999999"&gt;True&lt;/span&gt;

&lt;span style="color: #999988; font-style: italic"&gt;#and, as a gut check, let&amp;#39;s figure out a way to print it&lt;/span&gt;
&lt;span style="font-weight: bold"&gt;def&lt;/span&gt; &lt;span style="color: #990000; font-weight: bold"&gt;pretty_print_star&lt;/span&gt;(permutation):
    &lt;span style="font-weight: bold"&gt;print&lt;/span&gt; &lt;span style="color: #bb8844"&gt;&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
&lt;span style="color: #bb8844"&gt;              %s     %s&lt;/span&gt;
&lt;span style="color: #bb8844"&gt;                 %s&lt;/span&gt;
&lt;span style="color: #bb8844"&gt;              %s     %s&lt;/span&gt;
&lt;span style="color: #bb8844"&gt;           %s           %s&lt;/span&gt;
&lt;span style="color: #bb8844"&gt;              %s     %s&lt;/span&gt;
&lt;span style="color: #bb8844"&gt;                 %s&lt;/span&gt;
&lt;span style="color: #bb8844"&gt;              %s     %s&lt;/span&gt;
&lt;span style="color: #bb8844"&gt;&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt; &lt;span style="font-weight: bold"&gt;%&lt;/span&gt; &lt;span style="color: #999999"&gt;tuple&lt;/span&gt;(permutation)

&lt;span style="color: #999988; font-style: italic"&gt;# now! the brute force way to search for solutions would be to try and permute&lt;/span&gt;
&lt;span style="color: #999988; font-style: italic"&gt;# a list of all 12 integers, and wait for &amp;quot;solved&amp;quot; to be true. I&amp;#39;ll import a&lt;/span&gt;
&lt;span style="color: #999988; font-style: italic"&gt;# permute function:&lt;/span&gt;
&lt;span style="color: #999988; font-style: italic"&gt;# (requires probstat: http://probstat.sourceforge.net/ )&lt;/span&gt;
&lt;span style="font-weight: bold"&gt;import&lt;/span&gt; &lt;span style="color: #555555"&gt;probstat&lt;/span&gt;
&lt;span style="font-weight: bold"&gt;for&lt;/span&gt; perm &lt;span style="font-weight: bold"&gt;in&lt;/span&gt; probstat&lt;span style="font-weight: bold"&gt;.&lt;/span&gt;Permutation(ints):
    &lt;span style="font-weight: bold"&gt;if&lt;/span&gt; solved(perm):
        &lt;span style="font-weight: bold"&gt;print&lt;/span&gt; &lt;span style="color: #bb8844"&gt;&amp;quot;found solution!&amp;quot;&lt;/span&gt;
        pretty_print_star(perm)
&lt;/pre&gt;&lt;/div&gt;

</content>
	</entry>
</feed>
