56 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | ||
| id: 5900f4691000cf542c50ff7b
 | ||
| challengeType: 5
 | ||
| title: 'Problem 252: Convex Holes'
 | ||
| videoUrl: ''
 | ||
| localeTitle: 'Задача 252: выпуклые отверстия'
 | ||
| ---
 | ||
| 
 | ||
| ## Description
 | ||
| <section id="description"> Учитывая множество точек на плоскости, мы определяем выпуклую дыру как выпуклый многоугольник, имеющий в качестве вершин любую из заданных точек и не содержащую ни одной из заданных точек внутри нее (помимо вершин, могут быть указаны другие заданные точки по периметру многоугольника). <p> В качестве примера на рисунке ниже показан набор из двадцати точек и несколько таких выпуклых отверстий. Выпуклое отверстие, показанное в виде красного семиугольника, имеет площадь, равную 1049694,5 квадратных единиц, что является наивысшей возможной областью для выпуклого отверстия на заданном множестве точек. </p><p> В нашем примере мы использовали первые 20 точек (T2k-1, T2k) для k = 1,2, ..., 20, созданных с генератором псевдослучайных чисел: </p><p> S0 = 290797 Sn + 1 = Sn2 mod 50515093 Tn = (Sn mod 2000) - 1000 </p><p> т.е. (527, 144), (-488, 732), (-454, -947), ... </p><p> Какова максимальная площадь для выпуклого отверстия на множестве, содержащего первые 500 точек в псевдослучайной последовательности? Укажите свой ответ, включая одну цифру после десятичной точки. </p></section>
 | ||
| 
 | ||
| ## Instructions
 | ||
| <section id="instructions">
 | ||
| </section>
 | ||
| 
 | ||
| ## Tests
 | ||
| <section id='tests'>
 | ||
| 
 | ||
| ```yml
 | ||
| tests:
 | ||
|   - text: <code>euler252()</code> должен вернуть 104924.
 | ||
|     testString: 'assert.strictEqual(euler252(), 104924, "<code>euler252()</code> should return 104924.");'
 | ||
| 
 | ||
| ```
 | ||
| 
 | ||
| </section>
 | ||
| 
 | ||
| ## Challenge Seed
 | ||
| <section id='challengeSeed'>
 | ||
| 
 | ||
| <div id='js-seed'>
 | ||
| 
 | ||
| ```js
 | ||
| function euler252() {
 | ||
|   // Good luck!
 | ||
|   return true;
 | ||
| }
 | ||
| 
 | ||
| euler252();
 | ||
| 
 | ||
| ```
 | ||
| 
 | ||
| </div>
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| </section>
 | ||
| 
 | ||
| ## Solution
 | ||
| <section id='solution'>
 | ||
| 
 | ||
| ```js
 | ||
| // solution required
 | ||
| ```
 | ||
| </section>
 |