87 lines
6.5 KiB
HTML
87 lines
6.5 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 165 - 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=ef491"><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>Intersections</h2><div class="info" style="cursor:help;width:200px;margin-bottom:10px;"><h3>Problem 165</h3><span style="width:300px;color:#666;">Published on Saturday, 27th October 2007, 10:00 am; Solved by 1308</span></div>
|
|
<div class="problem_content" role="problem">
|
|
<p>A segment is uniquely defined by its two endpoints.<br /> By considering two line segments in plane geometry there are three possibilities:<br />
|
|
the segments have zero points, one point, or infinitely many points in common.</p>
|
|
<p>Moreover when two segments have exactly one point in common it might be the case that that common point is an endpoint of either one of the segments or of both. If a common point of two segments is not an endpoint of either of the segments it is an interior point of both segments.<br />
|
|
We will call a common point T of two segments L<sub>1</sub> and L<sub>2</sub> a true intersection point of L<sub>1</sub> and L<sub>2</sub> if T is the only common point of L<sub>1</sub> and L<sub>2</sub> and T is an interior point of both segments.
|
|
</p>
|
|
<p>Consider the three segments L<sub>1</sub>, L<sub>2</sub>, and L<sub>3</sub>:</p>
|
|
<p style="margin-left:20px;">L<sub>1</sub>: (27, 44) to (12, 32)<br />
|
|
L<sub>2</sub>: (46, 53) to (17, 62)<br />
|
|
L<sub>3</sub>: (46, 70) to (22, 40)</p>
|
|
<p>It can be verified that line segments L<sub>2</sub> and L<sub>3</sub> have a true intersection point. We note that as the one of the end points of L<sub>3</sub>: (22,40) lies on L<sub>1</sub> this is not considered to be a true point of intersection. L<sub>1</sub> and L<sub>2</sub> have no common point. So among the three line segments, we find one true intersection point.</p>
|
|
<p>Now let us do the same for 5000 line segments. To this end, we generate 20000 numbers using the so-called "Blum Blum Shub" pseudo-random number generator.</p>
|
|
<p style="margin-left:50px;">s<sub>0</sub> = 290797<br /><br />
|
|
s<sub>n+1</sub> = s<sub>n</sub><img src='images/symbol_times.gif' width='9' height='9' alt='×' border='0' style='vertical-align:middle;' />s<sub>n</sub> (modulo 50515093)<br /><br />
|
|
t<sub>n</sub> = s<sub>n</sub> (modulo 500)</p>
|
|
<p>To create each line segment, we use four consecutive numbers t<sub>n</sub>. That is, the first line segment is given by:</p>
|
|
<p>(t<sub>1</sub>, t<sub>2</sub>) to (t<sub>3</sub>, t<sub>4</sub>)</p>
|
|
<p>The first four numbers computed according to the above generator should be: 27, 144, 12 and 232. The first segment would thus be (27,144) to (12,232).</p>
|
|
<p>How many distinct true intersection points are found among the 5000 line segments?</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> |