Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Анализ ошибок в последовательности точек 
:(
    Опции темы
kjf03
Дата 7.8.2010, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 18.7.2010

Репутация: нет
Всего: нет



   Доброе время суток.

   Исходные данные: - робот в цикле обходит периодически точки (от 1 до N; обход должен быть 1->2->..->N->1->2->..->N->1->..);
                                  - началом нового периода считается точка №1;

   Необходимо подсчитать количество ошибок в периоде (1->2->..->N) допущенные роботом.
   Ошибкой в периоде считать:
                        - пропущена точка;
                        - нарушена последовательность (1->2->3->5->4->6->7->8  в данной последовательности 5 и 4 считать
                          нарушением последовательности, то есть необходимо учитывать восстановление последовательности).
   Замечанием в периоде считать:
                        - посещение точки более 1 раза, каждое лишнее посещение замечание.

  Подскажите как лучше реализовать алгоритм анализа обхода точек робота?
                                  
PM MAIL   Вверх
nworm
Дата 7.8.2010, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 502
Регистрация: 22.10.2005

Репутация: 4
Всего: 8



Код

error=0;
for(i=1,j=1;j<=N;i++,j++)
  {
     if (a[j]!=i)
       {
           if (a[j]>i) 
            {
              error++;
              if ((a[j]==i+1)&&(a[j+1]==i)) j=j+2;//перестановка
              if ((a[j]==i+1)&&(a[j+2]==i+2) j=j+1;//пропуск точки
            }
       }
  }


Как-то так или усложнить этот код.
PM MAIL WWW   Вверх
Akina
Дата 7.8.2010, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Недоопределённое условие. 

Пример:
1->2->3->5->4->5->6->7->8
Это может трактоваться и как только лишнее посещение, и как нарушение последовательности плюс лишнее посещение.

Пока не будет абсолютной строгости формулировки задания - не будет и решения.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
kjf03
Дата 7.8.2010, 19:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 18.7.2010

Репутация: нет
Всего: нет



Цитата(Akina @ 7.8.2010,  19:02)
Недоопределённое условие. 

Пример:
1->2->3->5->4->5->6->7->8
Это может трактоваться и как только лишнее посещение, и как нарушение последовательности плюс лишнее посещение.

Пока не будет абсолютной строгости формулировки задания - не будет и решения.

ошибки и замечания независимо друг от друга считаются.

В реализации nworm не реализован подсчет замечаний.
PM MAIL   Вверх
kjf03
Дата 7.8.2010, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 18.7.2010

Репутация: нет
Всего: нет



  Замечанием в периоде считать:
                        - посещение точки более 1 раза, причем подряд- это замечание. При посещении точки повторно, но не подряд - это ошибка.
PM MAIL   Вверх
Akina
Дата 7.8.2010, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Цитата(kjf03 @  7.8.2010,  20:32 Найти цитируемый пост)
ошибки и замечания независимо друг от друга считаются.

Думай, потом пиши... 
Повторяю.
1->2->3->5->4->5->6->7->8
Вариант 1 - базовая последовательность 1->2->3->5->4->5->6->7->8. Ошибка нарушения последовательности есть.
Вариант 2 - базовая последовательность 1->2->3->5->4->5->6->7->8. Ошибка нарушения последовательности отсутствует.

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


Это сообщение отредактировал(а) Akina - 7.8.2010, 21:51


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
kjf03
Дата 7.8.2010, 23:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 18.7.2010

Репутация: нет
Всего: нет



Цитата(Akina @ 7.8.2010,  21:47)
Цитата(kjf03 @  7.8.2010,  20:32 Найти цитируемый пост)
ошибки и замечания независимо друг от друга считаются.

Думай, потом пиши... 
Повторяю.
1->2->3->5->4->5->6->7->8
Вариант 1 - базовая последовательность 1->2->3->5->4->5->6->7->8. Ошибка нарушения последовательности есть.
Вариант 2 - базовая последовательность 1->2->3->5->4->5->6->7->8. Ошибка нарушения последовательности отсутствует.

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

Вариант 1 - базовая последовательность 1->2->3->5->4->5->6->7->8. Ошибка нарушения последовательности есть.
Вариант 2 - базовая последовательность 1->2->3->5->4->5->6->7->8. Ошибка нарушения последовательности отсутствует.

1->2->3->5->4->5->6->7->8
                 ^   ^  ^
                  |    |   |_ошибка повторное посещения точки (если бы было 3->5->5->4->5->6, то вторая 5 трактовалась как замечание)
                  |    |_ ошибки нет, восстановление последовательности.
                  |_ошибка - нарушение последовательности.


   Ошибкой в периоде считать:
                        - пропущена точка;
                        - нарушена последовательность (1->2->3->5->4->6->7->8  в данной последовательности 5 и 4 считать
                          нарушением последовательности, то есть необходимо учитывать восстановление последовательности);
                        - повторное посещение точки, при условии что предыдущая точка отлична от текущей;
                        - восстановление последовательности возможно при выполнении следующего условия: номер точки
                          восстановления последовательности, должен быть больше последнего номера точки до нарушения последовательности.
   Замечанием в периоде считать:
                        - посещение точки более 1 раза, при условии что предыдущая точка идентична текущей.
PM MAIL   Вверх
Akina
Дата 8.8.2010, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Иными словами, базовая последовательность состоит из ПЕРВЫХ посещений каждой точки.
Тогда ошибки пропуска и замечания повторного посещения определяются в ходе (пропуск - по завершении) сортировки подсчётом, а ошибки нарушения последовательности - сравнением базовой последовательности с эталонной.
Я бы предложил двухпроходный алгоритм - на первом проходе определяются и ВЫБРАСЫВАЮТСЯ из последовательности замечания повтора, на втором проходе по очищенной последовательности - выявляются ошибки нарушения последовательности, а по завершении любого из проходов - получается список ошибок пропуска.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0462 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.