freeCodeCamp/curriculum/challenges/russian/08-coding-interview-prep/project-euler/problem-150-searching-a-tri...

3.0 KiB
Raw Blame History

id challengeType title videoUrl localeTitle
5900f4031000cf542c50ff15 5 Problem 150: Searching a triangular array for a sub-triangle having minimum-sum Задача 150: Поиск треугольного массива для под треугольника с минимальной суммой

Description

В треугольном массиве положительных и отрицательных целых чисел мы хотим найти под-треугольник таким образом, чтобы сумма содержащихся в нем чисел была наименьшей возможной. В приведенном ниже примере легко проверить, что отмеченный треугольник удовлетворяет этому условию, имеющему сумму -42.

Мы хотим сделать такой треугольный массив с одной тысячей строк, поэтому мы генерируем псевдослучайные числа 500500 sk в диапазоне ± 219, используя тип генератора случайных чисел (известный как линейный конгруэнтный генератор) следующим образом: t: = 0

для k = 1 до k = 500500:

t: = (615949 * t + 797807) modulo 220 sk: = t-219 Таким образом: s1 = 273519, s2 = -153582, s3 = 450905 и т. д. Наш треугольный массив затем формируется с использованием псевдослучайных чисел, таким образом:

s1 s2 s3 s4 s5 s6

s7 s8 s9 s10 ...

Субтреугольники могут начинаться с любого элемента массива и расширяться до тех пор, пока нам нравится (приведение двух элементов непосредственно под ним из следующей строки, три элемента непосредственно ниже из строки после этого и т. Д.).

«Сумма под треугольника» определяется как сумма всех содержащихся в ней элементов.

Найдите наименьшую возможную сумму под треугольника.

Instructions

Tests

tests:
  - text: <code>euler150()</code> должен возвращать -271248680.
    testString: 'assert.strictEqual(euler150(), -271248680, "<code>euler150()</code> should return -271248680.");'

Challenge Seed

function euler150() {
  // Good luck!
  return true;
}

euler150();

Solution

// solution required