crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Полезные задачи, упражнения, тесты по ..., делимся интересными задачами по программированию и не только
kwisp
  опции профиля:
сообщение 10.9.2010, 14:03
Сообщение #1


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


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

П.С.
столкнулся с тем что интересных и полезных задач и упражнений на закрепление знаний скудно мало....
вот сейчас ищу полезные задачи по stl и пока безуспешно....
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Алексей1153
  опции профиля:
сообщение 20.10.2010, 9:35
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2939
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


Цитата(AD @ 20.10.2010, 11:56) *
Я правильно понимаю, что __acc, n_acc - пределы, по которым определяются "шумы"?

да, __acc - это точность (1000 ~ 3 порядка) , а n_acc - величина, обратная к __acc . Это далее для сравнения "больше на 3 порядка" или "меньше на 3 порядка". Поскольку деление - операция "тяжёлая", я вынес её за цикл

Цитата(AD @ 20.10.2010, 11:56) *
Сильно ли усложнит задачку следующее добавление, что пределы должны определяться в зависимости от массива/вектора?

да ни грамма не усложнит :) Надо сделать: перед вычислением пройтись по данным, определить максимум и минимум. В зависимости от них выбрать __acc.

Цитата(kwisp @ 20.10.2010, 11:58) *
Как поведет себя предложенный метод если к примеру первые 2 значения числа больше 1000 и 2000, а остальные 1 2 3 4 5. - какие значения удалятся из интервала?

я код не тестировал. А по алгоритму, щас посмотрим:

__acc=1000;
n_acc=0.001;

исходные данные:
1055, 2055, 1, 2, 3, 4, 5

с болванками:
1055, 1055, 2055, 1, 2, 3, 4, 5, 5
       |                      |
     отсюда начинаем       здесь стоп

1)
число 1055
k1=1055/1055 ==1  , n_acc<k1<__acc> - оставляем
k2=1055/2055 ==0.513  , n_acc<k2<__acc  - оставляем

2)
число 2055
k1=1055/2055 ==0.513  , n_acc<k1<__acc> - оставляем
k2=2055/1 ==2055  , n_acc<__acc<k2  - удаляем

...


ага, дебаг показал уже два косяка:
1) условие проверяется по 2 раза. Сократить до одного раза
2) значение нельзя просто удалять. Его надо заменять на следующее, а затем шагнуть один шаг назад и продолжить оттуда:
1055, 1055, 2055, 1, 2, 3, 4, 5, 5
             |
        сейчас проверяется

1055, 1055, <2055>, 1, 2, 3, 4, 5, 5
             |
        надо удалить (заменить на следующее)

1055, 1055, <1>, 1, 2, 3, 4, 5, 5
             |
           заменили

1055, 1055, <1>, 1, 2, 3, 4, 5, 5
       |
    шаг назад. Продолжаем отсюда


и ещё один баг: если сканировать с начала, приоритет отдаётся последним значениям. И "низкая волна" в конце перекроет "высокую " в начале. Тут можно попробовать заранее просмотреть данные и ориентироваться на некий уровень.

а ещё, кстати! я у себя делал сглаживание ступенчатого сигнала, наверное такой метод тоже может подойти, сейчас скрины для примера сделаю, прикреплю

без сглаживания
Прикрепленное изображение


одна итерация
Прикрепленное изображение


10 итераций
Прикрепленное изображение


Сообщение отредактировал Алексей1153 - 20.10.2010, 9:33
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- kwisp   Полезные задачи, упражнения, тесты по ...   10.9.2010, 14:03
- - Алексей1153   kwisp, вот совсем недавно встретилась простая на п...   10.9.2010, 14:17
- - kwisp   Цитата(Алексей1153 @ 10.9.2010, 15:17) о ...   10.9.2010, 14:38
- - Алексей1153   kwisp, не студиЯ , а студиИ . Ну реализуй, только...   10.9.2010, 14:53
- - kwisp   Цитата(Алексей1153 @ 10.9.2010, 15:44) не...   10.9.2010, 14:59
- - igor_bogomolov   Цитата(kwisp)Давайте делиться интересными задачами...   10.9.2010, 15:15
- - kwisp   Алексей1153, с сайта sgi stl const char S1[...   10.9.2010, 15:25
- - Алексей1153   kwisp, о, точно ) Спасибо   10.9.2010, 19:15
- - kwisp   в массиве значений(пусть double) необходимо удалит...   19.10.2010, 16:48
|- - AD   Цитата(kwisp @ 19.10.2010, 17:48) в масси...   19.10.2010, 18:00
- - Kagami   Не надо изобретать велосипед. Все это уже давно из...   19.10.2010, 18:41
|- - AD   Цитата(Kagami @ 19.10.2010, 19:41) Не над...   19.10.2010, 19:14
- - kwisp   Kagami, не понял при чем тут Цитата(Kagami ...   19.10.2010, 18:51
- - Алексей1153   Цитата(kwisp @ 19.10.2010, 19:48) в масси...   19.10.2010, 19:21
- - kwisp   Цитата(Алексей1153 @ 19.10.2010, 20:21) х...   19.10.2010, 19:27
- - Алексей1153   Раскрывающийся текстstd::vector<double...   19.10.2010, 19:44
|- - AD   Что за болванки? А можно все-таки кроссплатформенн...   19.10.2010, 19:48
- - Алексей1153   AD, я исправил - там size()-2 Цитата(AD @ 19...   19.10.2010, 20:20
|- - AD   Так. Разобрал код. Есть вопросы. 1) Я правильно по...   20.10.2010, 8:56
- - kwisp   Видно что задача требует уточнения. Нужно удалить ...   20.10.2010, 8:58
|- - AD   То есть самая первая подзадача - это найти критери...   20.10.2010, 9:11
- - Алексей1153   Цитата(AD @ 20.10.2010, 11:56) Я правильн...   20.10.2010, 9:35
- - kwisp   Цитата(Алексей1153 @ 20.10.2010, 10:35) Т...   20.10.2010, 10:04
- - Алексей1153   kwisp, а как ты хотел Чтоб без отладки оно всё вз...   20.10.2010, 10:24
- - kwisp   вот моя попытка. к сожалению определить полностью ...   21.10.2010, 14:38
- - Алексей1153   kwisp, кстати, специализацию можно не указывать т...   21.10.2010, 17:57
- - kwisp   самому себе для наглядности написал.   21.10.2010, 18:12


Ответить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.4.2024, 3:49