Euler has design of a homepage and there is a link back to the overview for each solution.
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
<head><meta charset="utf-8" />
|
||||
<head><meta charset="utf-8"/>
|
||||
<title>EulerProblem019</title><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.10/require.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
|
||||
|
||||
<style type="text/css">
|
||||
/*!
|
||||
*
|
||||
@@ -11714,8 +11714,6 @@ ul.typeahead-list > li > a {
|
||||
.ansi-bold { font-weight: bold; }
|
||||
|
||||
</style>
|
||||
|
||||
|
||||
<style type="text/css">
|
||||
/* Overrides of notebook CSS for static HTML export */
|
||||
body {
|
||||
@@ -11741,15 +11739,13 @@ div#notebook {
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<!-- Custom stylesheet, it must be in the same directory as the html file -->
|
||||
<link rel="stylesheet" href="custom.css">
|
||||
|
||||
<link href="custom.css" rel="stylesheet"/>
|
||||
<!-- Loading mathjax macro -->
|
||||
<!-- Load mathjax -->
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS_HTML"></script>
|
||||
<!-- MathJax configuration -->
|
||||
<script type="text/x-mathjax-config">
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS_HTML"></script>
|
||||
<!-- MathJax configuration -->
|
||||
<script type="text/x-mathjax-config">
|
||||
MathJax.Hub.Config({
|
||||
tex2jax: {
|
||||
inlineMath: [ ['$','$'], ["\\(","\\)"] ],
|
||||
@@ -11766,16 +11762,15 @@ div#notebook {
|
||||
}
|
||||
});
|
||||
</script>
|
||||
<!-- End of mathjax configuration --></head>
|
||||
<!-- End of mathjax configuration --></head>
|
||||
<body>
|
||||
<div tabindex="-1" id="notebook" class="border-box-sizing">
|
||||
<div class="container" id="notebook-container">
|
||||
|
||||
<div class="border-box-sizing" id="notebook" tabindex="-1">
|
||||
<div class="container" id="notebook-container">
|
||||
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
|
||||
</div>
|
||||
<div class="inner_cell">
|
||||
<div class="text_cell_render border-box-sizing rendered_html">
|
||||
<h1 id="Euler-Problem-19">Euler Problem 19<a class="anchor-link" href="#Euler-Problem-19">¶</a></h1><p>You are given the following information, but you may prefer to do some research for yourself.</p>
|
||||
<h1 id="Euler-Problem-19">Euler Problem 19<a class="anchor-link" href="#Euler-Problem-19">¶</a></h1><p><a href="/euler">Back to overview.</a></p><p>You are given the following information, but you may prefer to do some research for yourself.</p>
|
||||
<ul>
|
||||
<li>1 Jan 1900 was a Monday.</li>
|
||||
<li>Thirty days has September,
|
||||
@@ -11787,7 +11782,6 @@ And on leap years, twenty-nine.</li>
|
||||
<li>A leap year occurs on any year evenly divisible by 4, but not on a century unless it is divisible by 400.</li>
|
||||
</ul>
|
||||
<p>How many Sundays fell on the first of the month during the twentieth century (1 Jan 1901 to 31 Dec 2000)?</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -11799,24 +11793,23 @@ And on leap years, twenty-nine.</li>
|
||||
<p>We have one hundred years which equal 1200 months. Every month starts with a weekday and $\frac{1}{7}$ of all weekdays are Sundays. So, 1200 divided by 7 is 171 point something.</p>
|
||||
<p>Which turns out to be the correct solution.</p>
|
||||
<p>Let's still code a solution because we were not that smart back then. We create two generators, zip, them and search for 1st and Sunday.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="cell border-box-sizing code_cell rendered">
|
||||
<div class="input">
|
||||
<div class="prompt input_prompt">In [1]:</div>
|
||||
<div class="prompt input_prompt">In [1]:</div>
|
||||
<div class="inner_cell">
|
||||
<div class="input_area">
|
||||
<div class="input_area">
|
||||
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">weekday_generator_function</span><span class="p">():</span>
|
||||
<span class="k">while</span> <span class="kc">True</span><span class="p">:</span>
|
||||
<span class="k">yield</span> <span class="s1">'Monday'</span>
|
||||
<span class="k">yield</span> <span class="s1">'Tuesday'</span>
|
||||
<span class="k">yield</span> <span class="s1">'Wednesday'</span>
|
||||
<span class="k">yield</span> <span class="s1">'Thursday'</span>
|
||||
<span class="k">yield</span> <span class="s1">'Friday'</span>
|
||||
<span class="k">yield</span> <span class="s1">'Saturday'</span>
|
||||
<span class="k">yield</span> <span class="s1">'Sunday'</span>
|
||||
<span class="k">yield</span> <span class="s1">'Monday'</span>
|
||||
<span class="k">yield</span> <span class="s1">'Tuesday'</span>
|
||||
<span class="k">yield</span> <span class="s1">'Wednesday'</span>
|
||||
<span class="k">yield</span> <span class="s1">'Thursday'</span>
|
||||
<span class="k">yield</span> <span class="s1">'Friday'</span>
|
||||
<span class="k">yield</span> <span class="s1">'Saturday'</span>
|
||||
<span class="k">yield</span> <span class="s1">'Sunday'</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">day_of_month_generator_function</span><span class="p">():</span>
|
||||
<span class="n">day</span><span class="p">,</span> <span class="n">month</span><span class="p">,</span> <span class="n">year</span> <span class="o">=</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">1901</span>
|
||||
@@ -11844,91 +11837,67 @@ And on leap years, twenty-nine.</li>
|
||||
|
||||
|
||||
<span class="n">ds</span> <span class="o">=</span> <span class="nb">zip</span><span class="p">(</span><span class="n">weekday_generator_function</span><span class="p">(),</span> <span class="n">day_of_month_generator_function</span><span class="p">())</span>
|
||||
<span class="n">s</span> <span class="o">=</span> <span class="nb">len</span><span class="p">([</span><span class="mi">1</span> <span class="k">for</span> <span class="n">weekday</span><span class="p">,</span> <span class="n">date</span> <span class="ow">in</span> <span class="n">ds</span> <span class="k">if</span> <span class="n">weekday</span> <span class="o">==</span> <span class="s2">"Sunday"</span> <span class="ow">and</span> <span class="n">date</span> <span class="o">==</span> <span class="mi">1</span><span class="p">])</span>
|
||||
<span class="n">s</span> <span class="o">=</span> <span class="nb">len</span><span class="p">([</span><span class="mi">1</span> <span class="k">for</span> <span class="n">weekday</span><span class="p">,</span> <span class="n">date</span> <span class="ow">in</span> <span class="n">ds</span> <span class="k">if</span> <span class="n">weekday</span> <span class="o">==</span> <span class="s2">"Sunday"</span> <span class="ow">and</span> <span class="n">date</span> <span class="o">==</span> <span class="mi">1</span><span class="p">])</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="n">s</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="output_wrapper">
|
||||
<div class="output">
|
||||
|
||||
|
||||
<div class="output_area">
|
||||
|
||||
<div class="prompt"></div>
|
||||
|
||||
|
||||
<div class="output_subarea output_stream output_stdout output_text">
|
||||
<pre>172
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
|
||||
</div>
|
||||
<div class="inner_cell">
|
||||
<div class="text_cell_render border-box-sizing rendered_html">
|
||||
<p>Okay, this is actually kind of embarrassing. Why am I even zipping when I have the month right there in my function. Problem is, that my weekday generator starts with Monday, but Monday was the start in 1900 not in 1901. Let's try to do better. 1.1.1901 was a Tuesday, so we drop Monday from the generator.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="cell border-box-sizing code_cell rendered">
|
||||
<div class="input">
|
||||
<div class="prompt input_prompt">In [2]:</div>
|
||||
<div class="prompt input_prompt">In [2]:</div>
|
||||
<div class="inner_cell">
|
||||
<div class="input_area">
|
||||
<div class="input_area">
|
||||
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">wds</span> <span class="o">=</span> <span class="n">weekday_generator_function</span><span class="p">()</span>
|
||||
<span class="nb">next</span><span class="p">(</span><span class="n">wds</span><span class="p">)</span> <span class="c1"># get rid of first Monday</span>
|
||||
<span class="n">ds</span> <span class="o">=</span> <span class="nb">zip</span><span class="p">(</span><span class="n">wds</span><span class="p">,</span> <span class="n">day_of_month_generator_function</span><span class="p">())</span>
|
||||
<span class="n">s</span> <span class="o">=</span> <span class="nb">len</span><span class="p">([</span><span class="mi">1</span> <span class="k">for</span> <span class="n">weekday</span><span class="p">,</span> <span class="n">date</span> <span class="ow">in</span> <span class="n">ds</span> <span class="k">if</span> <span class="n">weekday</span> <span class="o">==</span> <span class="s2">"Sunday"</span> <span class="ow">and</span> <span class="n">date</span> <span class="o">==</span> <span class="mi">1</span><span class="p">])</span>
|
||||
<span class="n">s</span> <span class="o">=</span> <span class="nb">len</span><span class="p">([</span><span class="mi">1</span> <span class="k">for</span> <span class="n">weekday</span><span class="p">,</span> <span class="n">date</span> <span class="ow">in</span> <span class="n">ds</span> <span class="k">if</span> <span class="n">weekday</span> <span class="o">==</span> <span class="s2">"Sunday"</span> <span class="ow">and</span> <span class="n">date</span> <span class="o">==</span> <span class="mi">1</span><span class="p">])</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="n">s</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="output_wrapper">
|
||||
<div class="output">
|
||||
|
||||
|
||||
<div class="output_area">
|
||||
|
||||
<div class="prompt"></div>
|
||||
|
||||
|
||||
<div class="output_subarea output_stream output_stdout output_text">
|
||||
<pre>171
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
|
||||
</div>
|
||||
<div class="inner_cell">
|
||||
<div class="text_cell_render border-box-sizing rendered_html">
|
||||
<p>And finally, here we go. Actually not a dummy exercise and shows how imporessive the shortcut from the beginning is. Raw power is not always the best solution if we can also use brain.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
|
||||
|
||||
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user