Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Basic


Ответ
 
Опции темы Опции просмотра
Старый 24.10.2016, 16:34   #1 (permalink)
iks2
Member
 
Регистрация: 22.10.2016
Сообщений: 62
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Вычислить максимум необычной суммы?

Задача
дано 100 чисел: sin1, sin2, ... , sin100
Эти числа разбиваются на пары и перемножаются. Получается 50 чисел, которые и складываются.
Требуется всё это проделать так, чтобы получить максимальную сумму.

решение
1. числа загоняются в массив
2. массив сортируется
3. рядом стоящие элементы перемножаются и все суммируется

Вопрос. Будет ли это Истинный максимум?

Код:
REM
REM  SUMMA = 25.11266
REM

CLS
CONST n = 100
DIM x(1 TO n)

FOR i = 1 TO n
   x(i) = SIN(i)
NEXT

FOR i = 1 TO n - 1
FOR j = i + 1 TO n
   IF x(i) > x(j) THEN SWAP x(i), x(j)
NEXT j, i

FOR i = 1 TO n - 1 STEP 2
   S = S + x(i) * x(i + 1)
NEXT

PRINT "SUMMA ="; S
END
iks2 вне форума   Ответить с цитированием

Старый 24.10.2016, 16:34
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Отправлю вам схожие обсуждения, можете поискать там нужную информацию

Вычислить суммы произведений элементов. Pascal ABC
Вычислить значения суммы ряда при заданных с консоли начальном и конечном значениях
История разработки необычной мощной лазерной указки..

Старый 24.10.2016, 17:31   #2 (permalink)
Николай_С
Member
 
Аватар для Николай_С
 
Регистрация: 25.09.2012
Адрес: г.Дзержинск Нижегородской обл.
Сообщений: 22,460
Записей в дневнике: 7
Сказал(а) спасибо: 237
Поблагодарили 201 раз(а) в 63 сообщениях
Репутация: 88691
По умолчанию

Странно что в квадрат при этом не возводятся, а то была бы единица.
Цитата:
Вопрос. Будет ли это Истинный максимум?
Конечно же нет. А как быть с отрицательными числами?

P.s. Метод сортировки примитивен. Что-нибудь слышали про пузырьковый метод?

Последний раз редактировалось Николай_С; 24.10.2016 в 17:37
Николай_С вне форума   Ответить с цитированием
Старый 24.10.2016, 19:02   #3 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,386
Сказал(а) спасибо: 328
Поблагодарили 558 раз(а) в 194 сообщениях
Репутация: 106949
По умолчанию

Цитата:
Сообщение от Николай_С Посмотреть сообщение
P.s. Метод сортировки примитивен. Что-нибудь слышали про пузырьковый метод?
Да ладно, Коля, - какая разница? Методов сортировки много, и тут уж кому что нравится.
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Старый 24.10.2016, 19:44   #4 (permalink)
iks2
Member
 
Регистрация: 22.10.2016
Сообщений: 62
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Николай_С
Понимаете, после сортировки, мы имеем последовательность от самого меньшего числа, до самого большего. Далее все числа, пары, перемножаются. Иными словами умножение двух отрицательных чисел дает положительное число. В случае если число отрицательных чисел нечетно, то
это будет самое маленькое по модулю отрицательное число и умножится оно на самое маленькое по модулю положительное число. То есть мы получим (в данном случае) самое малое по модулю отрицательное число. Понимаете, меньше Не существует. Ну а что с остальными числами?
Приведу вам пример для двух пар чисел. Дано A, B, C, D - четыре числа в порядке возрастания. И надо доказать, что AB + CD - Абсолютный максимум. Итак у нас 2 варианта. Докажем оба
1. (AB + CD) > (AC + BD)
2. (AB + CD) > (AD + BC)
...
1. (AB + CD) - (AC + BD) > 0 ?
A(B - C) + D(C - B) = (A - D)(B - C) > 0 (доказано)

2. (AB + CD) - (AD + BC) > 0 ?
A(B - D) + C(D - B) = (A - C)(B - D) > 0 (доказано)

Надо полагать, что далее может помочь математическая индукция (это я не проверял)
Как вы считаете, этого недостаточно?
iks2 вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 11:43.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.