89 lines
7.4 KiB
HTML
89 lines
7.4 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta name="author" content="Colin Hughes" />
|
|
<meta name="description" content="A website dedicated to the fascinating world of mathematics and programming" />
|
|
<meta name="keywords" content="programming,mathematics,problems,puzzles" />
|
|
|
|
<title>Problem 149 - Project Euler</title>
|
|
<link rel="shortcut icon" href="http://projecteuler.net/favicon.ico" />
|
|
<link rel="stylesheet" type="text/css" href="style_main.css" />
|
|
<link rel="stylesheet" type="text/css" href="style_light.css" />
|
|
<script type="text/x-mathjax-config">
|
|
MathJax.Hub.Config({
|
|
jax: ["input/TeX", "output/HTML-CSS"],
|
|
tex2jax: {
|
|
inlineMath: [ ["$","$"], ["\\(","\\)"] ],
|
|
displayMath: [ ["$$","$$"], ["\\[","\\]"] ],
|
|
processEscapes: true
|
|
},
|
|
"HTML-CSS": { availableFonts: ["TeX"] }
|
|
});
|
|
</script>
|
|
|
|
<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML">
|
|
</script>
|
|
</head>
|
|
|
|
<body>
|
|
<div id="container">
|
|
|
|
<div id="nav" class="noprint">
|
|
<ul>
|
|
<li><a href="about" title="About" accesskey="h">About</a></li>
|
|
<li><a href="register" title="Register" accesskey="1">Register</a></li>
|
|
<li id="current"><a href="problems" title="Problems" accesskey="2">Problems</a></li>
|
|
<li><a href="login" title="Login" accesskey="3">Login</a></li>
|
|
</ul>
|
|
</div>
|
|
<div id="info_panel"><a href="rss2_euler.xml"><img src="images/icon_rss.png" alt="RSS Feed" title="RSS Feed" /></a><a href="secure=a2ce7"><img src="images/icon_lock.png" alt="Use secure connection" title="Use secure connection" /></a></div>
|
|
|
|
<div id="logo" class="noprint">
|
|
<img src="images/pe_banner_light.png" alt="Project Euler .net" />
|
|
</div>
|
|
|
|
<div id="content">
|
|
<div style="text-align:center;" class="print"><img src="images/pe_banner.png" alt="projecteuler.net" style="border:none;" /></div>
|
|
<h2>Searching for a maximum-sum subsequence.</h2><div class="info" style="cursor:help;width:200px;margin-bottom:10px;"><h3>Problem 149</h3><span style="width:300px;color:#666;">Published on Friday, 13th April 2007, 10:00 pm; Solved by 2350</span></div>
|
|
<div class="problem_content" role="problem">
|
|
<p>Looking at the table below, it is easy to verify that the maximum possible sum of adjacent numbers in any direction (horizontal, vertical, diagonal or anti-diagonal) <span style="white-space:nowrap">is 16 (= 8 + 7 + 1).</span></p>
|
|
|
|
<div style="text-align:center">
|
|
<table border="1" cellpadding="6" cellspacing="0" style="margin:auto"><tbody align="right"><tr><td><img src='images/symbol_minus.gif' width='9' height='3' alt='−' border='0' style='vertical-align:middle;' />2</td ><td >5</td><td>3</td><td>2</td></tr>
|
|
<tr><td>9</td><td><img src='images/symbol_minus.gif' width='9' height='3' alt='−' border='0' style='vertical-align:middle;' />6</td><td>5</td><td>1</td></tr>
|
|
<tr><td>3</td><td>2</td><td>7</td><td>3</td></tr>
|
|
<tr><td><img src='images/symbol_minus.gif' width='9' height='3' alt='−' border='0' style='vertical-align:middle;' />1</td><td>8</td><td><img src='images/symbol_minus.gif' width='9' height='3' alt='−' border='0' style='vertical-align:middle;' />4</td><td> 8</td></tr></tbody></table>
|
|
</div>
|
|
|
|
<p>Now, let us repeat the search, but on a much larger scale:</p>
|
|
|
|
<p>First, generate four million pseudo-random numbers using a specific form of what is known as a "Lagged Fibonacci Generator":</p>
|
|
|
|
<p>For 1 <img src='images/symbol_le.gif' width='10' height='12' alt='≤' border='0' style='vertical-align:middle;' /> <i>k</i> <img src='images/symbol_le.gif' width='10' height='12' alt='≤' border='0' style='vertical-align:middle;' /> 55, <i>s</i><sub><i>k</i></sub> = [100003 <img src='images/symbol_minus.gif' width='9' height='3' alt='−' border='0' style='vertical-align:middle;' /> 200003<i>k</i> + 300007<i>k</i><sup>3</sup>] (modulo 1000000) <img src='images/symbol_minus.gif' width='9' height='3' alt='−' border='0' style='vertical-align:middle;' /> 500000.<br />
|
|
For 56 <img src='images/symbol_le.gif' width='10' height='12' alt='≤' border='0' style='vertical-align:middle;' /> <i>k</i> <img src='images/symbol_le.gif' width='10' height='12' alt='≤' border='0' style='vertical-align:middle;' /> 4000000, <i>s</i><sub><i>k</i></sub> = [<i>s</i><sub><i>k<img src='images/symbol_minus.gif' width='9' height='3' alt='−' border='0' style='vertical-align:middle;' />24</i></sub> + <i>s</i><sub><i>k<img src='images/symbol_minus.gif' width='9' height='3' alt='−' border='0' style='vertical-align:middle;' />55</i></sub> + 1000000] (modulo 1000000) <img src='images/symbol_minus.gif' width='9' height='3' alt='−' border='0' style='vertical-align:middle;' /> 500000.</p>
|
|
|
|
<p>Thus, <i>s</i><sub>10</sub> = <img src='images/symbol_minus.gif' width='9' height='3' alt='−' border='0' style='vertical-align:middle;' />393027 and <i>s</i><sub>100</sub> = 86613.</p>
|
|
|
|
<p>The terms of <i>s</i> are then arranged in a 2000<img src='images/symbol_times.gif' width='9' height='9' alt='×' border='0' style='vertical-align:middle;' />2000 table, using the first 2000 numbers to fill the first row (sequentially), the next 2000 numbers to fill the second row, and so on.</p>
|
|
|
|
<p>Finally, find the greatest sum of (any number of) adjacent entries in any direction (horizontal, vertical, diagonal or anti-diagonal).</p>
|
|
</div><br />
|
|
<br /></div>
|
|
|
|
|
|
|
|
|
|
|
|
<div id="footer" class="noprint">
|
|
<a href="copyright">Project Euler Copyright Information</a>
|
|
<!--/Creative Commons License--><!-- <rdf:RDF xmlns="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
|
|
<Work rdf:about="">
|
|
<license rdf:resource="http://creativecommons.org/licenses/by-nc-sa/2.0/uk/" />
|
|
<dc:type rdf:resource="http://purl.org/dc/dcmitype/Text" />
|
|
</Work>
|
|
<License rdf:about="http://creativecommons.org/licenses/by-nc-sa/2.0/uk/"><permits rdf:resource="http://web.resource.org/cc/Reproduction"/><permits rdf:resource="http://web.resource.org/cc/Distribution"/><requires rdf:resource="http://web.resource.org/cc/Notice"/><requires rdf:resource="http://web.resource.org/cc/Attribution"/><prohibits rdf:resource="http://web.resource.org/cc/CommercialUse"/><permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/><requires rdf:resource="http://web.resource.org/cc/ShareAlike"/></License></rdf:RDF> -->
|
|
</div>
|
|
</div>
|
|
<div style="height:1px;"> </div></body>
|
|
</html> |