Move Project Euler under puzzles.
This commit is contained in:
95
puzzles/project_euler/pe/p328.html
Normal file
95
puzzles/project_euler/pe/p328.html
Normal file
@@ -0,0 +1,95 @@
|
||||
<!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 328 - 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=49e54"><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>Lowest-cost Search</h2><div class="info" style="cursor:help;width:200px;margin-bottom:10px;"><h3>Problem 328</h3><span style="width:300px;color:#666;">Published on Saturday, 12th March 2011, 10:00 pm; Solved by 259</span></div>
|
||||
<div class="problem_content" role="problem">
|
||||
<p>We are trying to find a hidden number selected from the set of integers {1, 2, ..., <var>n</var>} by asking questions.
|
||||
Each number (question) we ask, has a <u>cost equal to the number asked</u> and we get one of three possible answers:<br />
|
||||
<ul>
|
||||
<li> "Your guess is lower than the hidden number", or</li>
|
||||
<li> "Yes, that's it!", or</li>
|
||||
<li> "Your guess is higher than the hidden number".</li>
|
||||
</ul></p>
|
||||
|
||||
<p>Given the value of <var>n</var>, an <i>optimal strategy</i> minimizes the total cost (i.e. the sum of all the questions asked) <u>for the worst possible case</u>. E.g.</p>
|
||||
|
||||
<p>If <var>n</var>=3, the best we can do is obviously to ask the number "<b>2</b>". The answer will immediately lead us to find the hidden number (at a total cost = 2).</p>
|
||||
|
||||
<p>If <var>n</var>=8, we might decide to use a "binary search" type of strategy: Our first question would be "<b>4</b>" and if the hidden number is higher than 4 we will need one or two additional questions.<br />
|
||||
Let our second question be "<b>6</b>". If the hidden number is still higher than 6, we will need a third question in order to discriminate between 7 and 8.<br />
|
||||
Thus, our third question will be "<b>7</b>" and the total cost for this worst-case scenario will be 4+6+7=<span style='color:red;'><b>17</b></span>.</p>
|
||||
|
||||
<p>We can improve considerably the worst-case cost for <var>n</var>=8, by asking "<b>5</b>" as our first question.<br />
|
||||
If we are told that the hidden number is higher than 5, our second question will be "<b>7</b>", then we'll know for certain what the hidden number is (for a total cost of 5+7=<span style='color:blue;'><b>12</b></span>).<br />
|
||||
If we are told that the hidden number is lower than 5, our second question will be "<b>3</b>" and if the hidden number is lower than 3 our third question will be "<b>1</b>", giving a total cost of 5+3+1=<span style='color:blue;'><b>9</b></span>.<br />
|
||||
Since <span style='color:blue;'><b>12</b></span>><span style='color:blue;'><b>9</b></span>, the worst-case cost for this strategy is <span style='color:red;'><b>12</b></span>. That's better than what we achieved previously with the "binary search" strategy; it is also better than or equal to any other strategy.<br />
|
||||
So, in fact, we have just described an optimal strategy for <var>n</var>=8.</p>
|
||||
|
||||
<p>Let C(<var>n</var>) be the worst-case cost achieved by an optimal strategy for <var>n</var>, as described above.<br />
|
||||
Thus C(1) = 0, C(2) = 1, C(3) = 2 and C(8) = 12.<br />
|
||||
Similarly, C(100) = 400 and <img style="vertical-align:middle" src="project/images/p_328_sum1.gif" />C(<var>n</var>) = 17575.</p>
|
||||
|
||||
<p>Find <img style="vertical-align:middle" src="project/images/p_328_sum2.gif" />C(<var>n</var>).</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>
|
||||
Reference in New Issue
Block a user