Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
67 / 42 / 30
Регистрация: 26.03.2019
Сообщений: 269
1

Оценка Лемана-Хождеса

31.10.2019, 09:11. Показов 889. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ищу метод реализации оценки Лемана-Ходжеса.
Её получают как медиану из всех возможных пар средних в ряду измерений, когда в комбинациях для формирования средних значений номер первого слагаемого j всегда меньше номера второго слагаемого k.
Есть вектор действительных чисел чисел left;

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
    sort(left.begin(), left.end());
    vector<double> sorted;
    double med;
    for (auto i = 0; i < left.size() - 1; ++i)
        for (auto j = i + 1; j < left.size(); ++j) 
            sorted.push_back((left[i] + left[j]) / 2);
    if (left.size() % 2 == 0) {
        med = (sorted[sorted.size() / 2] + sorted[sorted.size() / 2 - 1]) / 2;
    }
    if (left.size() % 2 != 0) {
        med = sorted[sorted.size() / 2];
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.10.2019, 09:11
Ответы с готовыми решениями:

Метод Лемана (разложение на множители)
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics,...

Ускоренное умножение двоичных чисел по методу Лемана с использованием флагов Z, OV, C
Здравствуйте! Получил задание составить программу на Delphi на тему ускоренное умножение двоичных...

Средняя оценка студ выше чем сред оценка группы
Здравствуйте:) Нужна помощь в задании:Вывести Select Студент.Фамилия,??* AS Ср_оц_Студ,...

PHP работа с файлами(номер/фио/оцена/оценка/оценка)
помогите переделать задачку, сейчас она берет из файла вида (фамилия имя; оценка) данные и...

11
43 / 39 / 5
Регистрация: 16.09.2019
Сообщений: 285
31.10.2019, 09:40 2
Вопрос в чем?
Или тупо перед одноклассниками понтонуться решил?

Добавлено через 1 минуту
П.С. не понимаю людей использующих "auto"
0
391 / 64 / 11
Регистрация: 06.08.2018
Сообщений: 202
31.10.2019, 17:40 3
Цитата Сообщение от БедолагаЖека Посмотреть сообщение
П.С. не понимаю людей использующих "auto"
ну в данном примере согласна, а в общем, когда надо пробежаться по всем элементам , ну, например, вектора или еще какой группы об"ектов и при этом если не нужен порядковый индекс, то удобно
0
фрилансер
5499 / 5095 / 1047
Регистрация: 11.10.2019
Сообщений: 13,346
31.10.2019, 17:58 4
БедолагаЖека, auto должен использоваться к месту (особенно при активном использовании STL и в шаблонных лямбдах - вообще auto незаменим), тогда всё нормально будет и удобно.
Но для индексов то в цикле он точно не нужен
0
43 / 39 / 5
Регистрация: 16.09.2019
Сообщений: 285
31.10.2019, 18:03 5
Цитата Сообщение от Крашеная Посмотреть сообщение
ну в данном примере согласна, а в общем, когда надо пробежаться по всем элементам , ну, например, вектора или еще какой группы об"ектов и при этом если не нужен порядковый индекс, то удобно
В смысле ФОР_ЫЧ? Так там тоже можно без Авто обойтись...
Я говорю про вообще, не только в цикле
C++
1
2
auto x = 4.0; // 4.0 - это литерал типа double, поэтому и x должен быть типа double
auto y = 3 + 4; // выражение 3 + 4 обрабатывается как целочисленное, поэтому и переменная y должна быть типа int
Меня учили всегда знать с чем я имею дело, на мой взгляд это правильно... Х-ня типа авто для переходцев со скриптов, тем один хрен с чем они имеют дело...) Любитель Питона точно бы одобрил наличие АВТО.

Добавлено через 57 секунд
Цитата Сообщение от Алексей1153 Посмотреть сообщение
шаблонных лямбдах - вообще auto незаменим
Вот про лямбды - пошел читать...
0
фрилансер
5499 / 5095 / 1047
Регистрация: 11.10.2019
Сообщений: 13,346
31.10.2019, 18:07 6
БедолагаЖека,

я точно не знаю, как такое называется. Суть в том, что лямбда практически является шаблоном, компилятор сам выводит тип аргумента

C++
1
2
3
4
auto lam=[](const auto& item)
{
    item.func();
};
аналог
C++
1
2
3
4
5
template<class T>
void lam(const T& item)
{
    item.func();
}
Насчёт синтаксического сахара в циклах - ну да, без auto всегда можно обойтись, но иногда при этом можно угробить нервы, время и ресурс клавиатуры. Хотя эти жертвы не нужны
1
43 / 39 / 5
Регистрация: 16.09.2019
Сообщений: 285
31.10.2019, 18:21 7
Алексей1153, если честно, это какая-то задница.....мне надоело перечитывать, а я так и не понял какой в них смысОл...
0
фрилансер
5499 / 5095 / 1047
Регистрация: 11.10.2019
Сообщений: 13,346
31.10.2019, 18:41 8
Цитата Сообщение от БедолагаЖека Посмотреть сообщение
какой в них смысОл
в лямбдах то ? В целом - это синтаксический сахар, локальные статические функции без надобности в классе. Функторы, коллбэки. Но с хитринка заключается в способе захвата локальных переменных

или вот, например, одно из любопытных применений. Имеется какой-нибудь суровый код тёмного предшественника,
C++
1
2
3
4
5
6
7
int SomeDarkGeniusFunction()
{
   //тут начинается запутанный кусок с многочисленными return
  //...
 
   return 0;
}
но хочется его немного больше контролировать. Оборачиваем часть кода внутри функции в лямбду с захватом всех локальных переменных по ссылке

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int SomeDarkGeniusFunction()
{
 
   //вход 
 
   int result=[&]()->int
   {
      //тут начинается запутанный кусок с многочисленными return
     //...
 
   }();
 
   //выход всегда будет тут
 
   return result;
}
0
67 / 42 / 30
Регистрация: 26.03.2019
Сообщений: 269
31.10.2019, 18:44  [ТС] 9
БедолагаЖека,
вопрос в том, правильно ли выполнен алгоритм?
0
43 / 39 / 5
Регистрация: 16.09.2019
Сообщений: 285
31.10.2019, 18:57 10
SoBadDay, я, например, "не очень" в Лемане-Хождесе разбираюсь )
Единственное: возникает ощущение, что сортировать надо результирующий вектор, а входящий по барабану...

Добавлено через 2 минуты
Проверь, насколько результат похож на средне-арифметическое исходного массива
0
67 / 42 / 30
Регистрация: 26.03.2019
Сообщений: 269
31.10.2019, 19:11  [ТС] 11
я, например, "не очень" в Лемане-Хождесе разбираюсь
Разбираться-то сильно не нужно, ведь вторым предложением я пояснил, как эту оценку определяют.
Единственным остается вопрос, какой массив идёт на вход: отсортированный либо нет, однако сам алгоритм при этом остаётся тот же. Его я и представил на проверку. Если мой код не совсем удобочитабельный, можешь написать свой, я буду пытаться в нём разобраться
0
43 / 39 / 5
Регистрация: 16.09.2019
Сообщений: 285
31.10.2019, 20:14 12
Цитата Сообщение от SoBadDay Посмотреть сообщение
не совсем удобочитабельный
мне удобно, я почти так же пишу....
Цитата Сообщение от SoBadDay Посмотреть сообщение
средних в ряду измерений
вот эта часть особенно понятна

Алгоритм:
ты выкинул последний в первом форе, и первый во втором - складывается впечатление что "сам-с-собою" не усредняешь?
а в середине массива?
Вывод:
либо включаем границы (конец и начало), либо выкидываем "одинаковость" внутри (проверка на равенство И и Йот)

Второй ИФ заменить на ЭЛСЕ
0
31.10.2019, 20:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.10.2019, 20:14
Помогаю со студенческими работами здесь

Дана строка формата «Предмет: Фамилия_студента1, Оценка, Фамилия_студента2, Оценка, …»
Дана строка формата «Предмет: Фамилия_студента1, Оценка, Фамилия_студента2, Оценка, …». По каждому...

Список учеников имеет следующую структуру: фамилия – класс - оценка по алгебре - оценка по физике - средний балл
Задание такое Список учеников имеет следующую структуру: фамилия – класс - оценка по алгебре -...

Фамилия ученика,рост,оценка за 3 занятия. а) средняя оценка по каждому предмету общего класса б) самая длинная и самая
Фамилия ученика,рост,оценка за 3 занятия. а) средняя оценка по каждому предмету общего класса б)...

Оценка ученика (Оценка)
Всем привет, нужна помощь с следующим заданием: Ученику предлагается решить некоторые...

Оценка S.M.A.R.T
Здравствуйте! Оцените, пожалуйста, СМАРТ. Кроме, пендингов выявляются какие-либо проблемы?

оценка пк
как думаете на сколько по цене потянет?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru