Нерешенная задача на максимум - QBasic

Формулировка задачи:

Суть задачи проста. Задан ряд натуральных чисел 1, 2, 3, ... , 100 Из этого ряда должна быть построена числовая сумма с использованием функции SIN() так, чтобы сумма получилась максимальной (или близкой к ней) пример построения 1) sin1 + sin2 + sin(3+4) + sin5 +sin(6+7) + ... 2) sin(1+2) + sin3 + sin(4+5) + sin(6+7) + ... Иными словами под знаком sin может стоять одно или сумма двух чисел (порядок четко соблюдается), но заранее не определено - одно число или сумма решение 1. подумал. может сначала проверить все пары и выделить те, которые дают наибольшие значения? 2. заодно рассмотреть пары, которые дают наименьшие значения и не использовать их? 3. разбить большой ряд на несколько меньших и провести тотальный расчет на максимум 4. задача мне не подвластна, может кто что-нибудь подскажет?

Код к задаче: «Нерешенная задача на максимум - QBasic»

textual
DIM m(100) AS DOUBLE, t(100) AS STRING, m1 AS DOUBLE, m2 AS DOUBLE, i AS LONG, n AS LONG
n = 100
m(1) = SIN(1)
t(1) = "sin(1)"
FOR i = 2 TO n
    m1 = m(i - 1) + SIN(i)
    m2 = m(i - 2) + SIN(i - 1 + i)
    IF m1 > m2 THEN
        m(i) = m1
        t(i) = t(i - 1) + "+sin(" + LTRIM$(STR$(i)) + ")"
    ELSE
        m(i) = m2
        t(i) = t(i - 2) + "+sin(" + LTRIM$(STR$(i - 1)) + "+" + LTRIM$(STR$(i)) + ")"
    END IF
NEXT i
PRINT m(n)
PRINT t(n)

15   голосов, оценка 4.200 из 5


СОХРАНИТЬ ССЫЛКУ