--- id: 5900f49a1000cf542c50ffac challengeType: 5 title: 'Problem 300: Protein folding' videoUrl: '' localeTitle: 'Проблема 300: Складывание белка' --- ## Description
В очень упрощенной форме мы можем рассматривать белки как строки, состоящие из гидрофобных (H) и полярных (P) элементов, например HHPPHHHPHHPH. Для этой проблемы важна ориентация белка; например, ГЭС считается отличной от PPH. Таким образом, существует 2n различных белков, состоящих из n элементов.

Когда вы сталкиваетесь с этими строками в природе, они всегда складываются таким образом, что число точек контакта HH максимально велико, так как это энергетически выгодно. В результате Н-элементы, как правило, накапливаются во внутренней части, причем Р-элементы снаружи. Естественные белки, конечно, сложены в трех измерениях, но мы будем рассматривать только складку белка в двух измерениях.

На следующем рисунке показаны два возможных способа сгибания нашего примера белка (точки контакта HH показаны красными точками).

Складывание слева имеет только шесть контактных точек HH, поэтому оно никогда не будет происходить естественным образом. С другой стороны, складка справа имеет девять точек контакта HH, что является оптимальным для этой строки.

Предполагая, что элементы H и P одинаково вероятны в любой позиции вдоль строки, среднее число точек контакта HH в оптимальном сгибании случайной белковой строки длиной 8 оказывается равным 850/28 = 3,3203125.

Каково среднее число контактных точек HH в оптимальном складывании случайной белковой строки длиной 15? Дайте свой ответ, используя столько знаков после запятой, сколько необходимо для точного результата.

## Instructions
## Tests
```yml tests: - text: euler300() должен вернуться 8.0540771484375. testString: 'assert.strictEqual(euler300(), 8.0540771484375, "euler300() should return 8.0540771484375.");' ```
## Challenge Seed
```js function euler300() { // Good luck! return true; } euler300(); ```
## Solution
```js // solution required ```