Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 10.04.2022
Сообщений: 22

Найти пары с одинаковым Хэшем и выбрать верные варианты

08.02.2023, 15:25. Показов 1102. Ответов 4

Студворк — интернет-сервис помощи студентам
Есть Хеш-функция для класса Person
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
struct Person
{ 
    Person(string name, string surname)
        : name(name), surname(surname)
    {}
    string name; 
    string surname; 
};
 
namespace std 
{
    template <> 
    struct hash<Person> 
    {
        size_t operator()(Person const& p) const 
        {
              hash<string> h;
              return h(p.name) ^ h(p.surname);
        }
    };
}
Какие пары Person будут иметь одинаковый хеш?

Далее...

Какие следующие утверждения об ассоциативных контейнерах верны?
1) При удалении элемента из упорядоченного ассоциативного контейнера инвалидируются только итераторы на этот элемент.
2) При удалении элемента из неупорядоченного ассоциативного контейнера инвалидируются только итераторы на этот элемент.
3) При добавлении элемента в начало/конец упорядоченного ассоциативного контейнера никакие итераторы не инвалидируются.
4) При добавлении элемента в начало/конец неупорядоченного ассоциативного контейнера никакие итераторы не инвалидируются.
5) При добавлении элемента в середину упорядоченного ассоциативного контейнера никакие итераторы не инвалидируются.
6) При добавлении элемента в середину неупорядоченного ассоциативного контейнера никакие итераторы не инвалидируются.

Уже 4 часа мучаюсь, а никак правильный ответ не подбирается
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.02.2023, 15:25
Ответы с готовыми решениями:

Можно ли разбить последовательность на пары так, чтобы произведение чисел любой пары было одинаковым?
Помогите написать код задачи на с++ Дана последовательность целых чисел. Выяснить, можно разбить ее на пары таким образом , чтобы...

Есть 12 скобок. Подсчитать и напечатать все синтаксически верные варианты
пример синтаксически верного варианта: ()()()()()(),(((((()))))) пример синтаксически неверного варианта: )()()()()()(,))))))(((((( ...

В множестве точек на плоскости найти все пары точек с одинаковым максимальным расстоянием между ними
очень нужно. Условия задания: Темы: Связь указателей и одномерных массивов. Динамический од-номерный массив. Требования и общие...

4
184 / 72 / 35
Регистрация: 09.05.2022
Сообщений: 387
08.02.2023, 15:48
Два экземпляра «Person» с одинаковыми «name» и «surname» будут иметь одинаковое хеш-значение.

Из утверждений об ассоциативных контейнерах верны только следующие:

1. Когда элемент удаляется из упорядоченного ассоциативного контейнера, недействительными становятся только итераторы для этого элемента.

2. Когда элемент удаляется из неупорядоченного ассоциативного контейнера, недействительными становятся только итераторы для этого элемента.

Остальные утверждения неверны. Добавление элемента в ассоциативный контейнер, независимо от того, является ли он упорядоченным или неупорядоченным, потенциально может сделать недействительными все итераторы, а не только те, которые относятся к добавленному элементу.


Хеш-функция — это функция, которая принимает ввод (или «сообщение») и возвращает строку байтов фиксированного размера. Выходные данные, называемые «хэш-значением» или «дайджестом», должны иметь следующие свойства:

Детерминированный: при одном и том же входе каждый раз должен производиться один и тот же результат.
Необратимый: учитывая значение хеш-функции, воссоздание исходного ввода должно быть вычислительно невозможным.
Равномерное распределение: хэш-значения должны быть равномерно распределены по большому диапазону значений.

Хеш-функция, используемая в предоставленном вами коде, является примером пользовательской хеш-функции для структуры "Person". Хеш-функция реализована как специализация класса шаблона std::hash. Специализация hash<Person> обеспечивает перегрузку оператора вызова функции (operator()), который принимает экземпляр Person в качестве аргумента. Хэш-функция вычисляет хеш-значение объекта Person путем объединения хэш-значений его полей имени и фамилии с помощью побитового оператора XOR (^).

Хеш-функции часто используются в структурах данных, таких как хэш-таблицы, где они используются для сопоставления входных значений с индексами в массиве. Когда два входных значения дают одно и то же значение хеш-функции, это называется коллизией хэшей. Для обработки коллизий хэшей в большинстве реализаций хеш-таблиц используется такой метод, как цепочка или открытая адресация, для хранения нескольких элементов с одним и тем же значением хеш-функции.
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
08.02.2023, 16:11
Лучший ответ Сообщение было отмечено Netherlight как решение

Решение

ну или если не брать случаи случайных строк с таким же хешем, то либо
Цитата Сообщение от karlhildekruger Посмотреть сообщение
Два экземпляра «Person» с одинаковыми «name» и «surname» будут иметь одинаковое хеш-значение.
либо Два экземпляра «Person» с «name» одного равным «surname» второго и с «name» второго равным «surname» одного будут иметь одинаковое хеш-значение.
1
0 / 0 / 0
Регистрация: 10.04.2022
Сообщений: 22
08.02.2023, 16:54  [ТС]
karlhildekruger, Программа показывает, что выбор 1 и 2 неверны. Не знаю что не так. Тема "Итераторы и умные указатели"
0
1 / 0 / 1
Регистрация: 09.02.2023
Сообщений: 1
09.02.2023, 16:30
Лучший ответ Сообщение было отмечено Netherlight как решение

Решение

1) При удалении элемента из упорядоченного ассоциативного контейнера инвалидируются только итераторы на этот элемент.
2) При удалении элемента из неупорядоченного ассоциативного контейнера инвалидируются только итераторы на этот элемент.
3) При добавлении элемента в начало/конец упорядоченного ассоциативного контейнера никакие итераторы не инвалидируются.
5) При добавлении элемента в середину упорядоченного ассоциативного контейнера никакие итераторы не инвалидируются.

Вот правильный ответ.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.02.2023, 16:30
Помогаю со студенческими работами здесь

Выбрать верные утверждения
выберите верные утверждения: A: Ω(n^2)=n^3 B: O(n^sin(m))=n⋅m C: Ω(n)=O(log(n)) D: O(n!+n^n)=O(∑ n^n−1)

Выбрать верные утверждения. Деструктуризация
1.Деструктуризация предназначена для преобразования массива значений в одно, но большей общности 2.Деструктуризация массивов может...

Дисперсия и матожидание - выбрать верные утверждения
Добрый день! Есть такие утверждения, нужно выбрать правильные: 1. Для независимых случайных величин ξ и η дисперсия линейна, т. е....

Выбрать верные утверждения по теории вероятностей
Добрый день. Просьба помочь с решением. Нужно отметить верные утверждения. 1. Если события A и B независимы, то...

Разбить последовательность чисел на пары с одинаковым произведением
Дана последовательность целых чисел. Выяснить, можно разбить ее на пары таким образом , чтобы произведение чисел любой пары был равен...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru