![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#21 |
Пользователь
Регистрация: 11.02.2013
Сообщений: 32
|
![]()
Я к нему теперь только во вторник иду, может снова чего новое придумает, изменит...
|
![]() |
![]() |
![]() |
#22 | |
Форумчанин
Регистрация: 07.02.2013
Сообщений: 267
|
![]() Цитата:
По крайней мере, у меня то, что в программе и то, что на бумаге сошлось.
Μολὼν λαβέ
|
|
![]() |
![]() |
![]() |
#23 |
Пользователь
Регистрация: 11.02.2013
Сообщений: 32
|
![]()
alexander13, обязательно расскажу, спасибо Вам за неравнодушие! =)
|
![]() |
![]() |
![]() |
#24 |
Пользователь
Регистрация: 11.02.2013
Сообщений: 32
|
![]()
В общем, преподаватель ничего путного не сообщил. Стоит на своем: ошибка должна стать в 1000 раз меньше!
Исправил вот это: Код:
Код:
Код:
|
![]() |
![]() |
![]() |
#25 |
Пользователь
Регистрация: 11.02.2013
Сообщений: 32
|
![]()
В общем, нужно смотреть - если ничего не меняется, а именно - ошибка Е и значения m1, m2 - надо выходить из цикла. Но как это сделать-я не знаю.
|
![]() |
![]() |
![]() |
#26 | |
Форумчанин
Регистрация: 07.02.2013
Сообщений: 267
|
![]() Цитата:
А выходить из цикла - просто. Можно, например, сравнивать центроиды на предыдущем и текущем шаге, если они равны, то делать break. Можно, конечно, и ошибки сравнивать, но мне кажется, сравнивать центроиды надежнее. Upd. Понимаете, да? Т.е. Вам нужно сохранять старые значения центроидов, потом вводить какой-нибудь if, где в условии стоит разность предыдущего и текущего центроидов и, если она равно нулю, то делать break; А ошибка не обязана уменьшаться в 1000 раз. Это не следует из самого метода...
Μολὼν λαβέ
Последний раз редактировалось alexander13; 19.02.2013 в 19:36. |
|
![]() |
![]() |
![]() |
#27 |
Пользователь
Регистрация: 11.02.2013
Сообщений: 32
|
![]()
Обалдеть... Зачем он мне c-means сделал?! Ладно, это риторический вопрос... А как получить предыдущий и текущий шаг из Until-Repeat?
|
![]() |
![]() |
![]() |
#28 |
Пользователь
Регистрация: 11.02.2013
Сообщений: 32
|
![]()
Старые значения центроидов - это значения m1, m2. Но они же первые, которые мы ищем по масимуму и минимуму.
Если делать Код:
|
![]() |
![]() |
![]() |
#29 |
Форумчанин
Регистрация: 07.02.2013
Сообщений: 267
|
![]()
Ну как же.. у Вас в каждой итерации цикла вычисляются новые компоненты центроида. Вот до того, как их вычислять, сохраните старые в отдельные переменные.
Например, можно их сохранять в координаты начальных точек центроидов, они все равно, кажется, дальше не используются. Если сильно не заморачиваться, то как-то так: Код:
Μολὼν λαβέ
|
![]() |
![]() |
![]() |
#30 |
Пользователь
Регистрация: 11.02.2013
Сообщений: 32
|
![]()
Цикл Repeat-Until при этом остаётся?
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Цикл repeat until | ac1d_buRn | Помощь студентам | 4 | 06.10.2009 21:55 |
Как правильно построить цикл для выборки? | Tanuska___:) | БД в Delphi | 1 | 12.01.2009 14:50 |
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) | Mr.User | Помощь студентам | 9 | 23.11.2007 01:34 |