Локальные экстремумы в VBScript

Программирование на Active Server Pages и VBScript.
baiba_89
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 16.10.2006 (Пн) 8:01

Локальные экстремумы в VBScript

Сообщение baiba_89 » 20.10.2006 (Пт) 15:14

Задача такая: подсчитать количество локальных экстремумов в числовой последовательности.
Я написал скрипт но он либо не работет либо выдает не то что нужно. Помоги исправить так чтобы она считала количество min и max в последовательности.

dim a(),max,min
n=inputbox("n=?")
redim a(n)
for i=1 to n-1
a(i)=Cint(InputBox("a("+cstr(i)+")="))
if a(i-1)<a(i)>a(i+1) then
max=a(i)
end if
next
for i=1 to n-1
if a(i-1)>a(i)<a(i+1) then
min=a(i)
end if
next
msgbox "Кол-во max="&max&vbcrlf&"Кол-во min="&min

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 20.10.2006 (Пт) 15:22

Злостный повтор топика.
Закрыто.
Автору рекомендуется прекратить, во избежание.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 20.10.2006 (Пт) 15:35

Тут имеет место какая то лажа в определении алгоритма решения задачи.

Конечно я не спорю и в моем понимании термина "экстремум" могут присутствовать некие пробелы, но мне кажется что экстремум - он на отрезке один. Вот задали отрезок (ввели кучу чисел) а потом бац! Экстремум - это max и min.

Автор бы, короче, прояснил бы задачу как то точнее чтли. А не выкладывал кривой код, с неясным смыслом.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 20.10.2006 (Пт) 15:40

Лажа тут места не имеет. Понятие локального экстремума очевидно и не требует уточнений. Единственное, что имеет значение - тот факт, что автор вопроса уже задавал его.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 20.10.2006 (Пт) 15:43

RayShade писал(а):Тут имеет место какая то лажа в определении алгоритма решения задачи.
Конечно я не спорю и в моем понимании термина "экстремум" могут присутствовать некие пробелы, но мне кажется что экстремум - он на отрезке один. Вот задали отрезок (ввели кучу чисел) а потом бац! Экстремум - это max и min.
Автор бы, короче, прояснил бы задачу как то точнее чтли. А не выкладывал кривой код, с неясным смыслом.

Нет. Локальный экстремум -- это точка изменения знака производной. На отрезке их может быть сколько угодно. Пример: у косинуса все точки pi*k -- локальные экстремумы.
Изображение

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 20.10.2006 (Пт) 16:20

tyomitch, а как ты восстановишь функцию по значениям из числовой последовательности? Без нее или ее производной любое значение может быть экстремумом.
Лучший способ понять что-то самому — объяснить это другому.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 20.10.2006 (Пт) 23:50

Восстановлю, соединив эти точки отрезками.
Если (y[k]-y[k-1])(y[k+1]-y[k]) < 0, то это экстремум.
Изображение

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 21.10.2006 (Сб) 9:51

Вот и решение задачи :)
Лучший способ понять что-то самому — объяснить это другому.


Вернуться в ASP и VBScript

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

    TopList