Valery
тоесть у Key(1,0,0)
Valery
и Key(0,1,0)
Valery
одинаковый хэш
Valery
коллизия?
Alex
хэшфункция плохая
Valery
именно
Valery
коллизия есть, дальше что?
Sergey
Valery
use std::collections::HashMap;
use std::hash::*;
#[derive(Eq, PartialEq, Debug)]
struct Key(i32);
impl Hash for Key {
fn hash<H: Hasher>(&self, state: &mut H) {
1usize.hash(state);
}
}
fn main() {
let mut hm = HashMap::new();
hm.insert(Key(1), "One");
hm.insert(Key(2), "Two");
hm.insert(Key(3), "Three");
hm.insert(Key(4), "Four");
println!("{:?}", hm);
}
Valery
я думаю может прояснить пару вопросов
պլհկ
но это не валидный impl Hash
Valery
это рабочий пример
Valery
даже с невалидным impl Hash
Valery
чтобы для тебя не означало слово валидный :D
Loo
> When implementing both Hash and Eq, it is important that the following property holds:
> k1 == k2 -> hash(k1) == hash(k2)
Valery
Key(1) == Key(1) -> hash(Key(1)) == hash(Key(1))
Loo
ой всё
Loo
Valery
читать я умею, тут разговор о страшных коллизиях был
Valery
вот хэш у которого 100% коллизий, и хэшмапа все еще работает
ㅤ
Valery
я вот одного не понимаю
ㅤ
Valery
@berkus спаси меня
ㅤ
Просто при коллизиях хешмапа не перестаёт работать, она просто работает не так, как ожидается (в плане асимптотики операций)
Valery
уже и за мной выехали
Berkus
мало того, я чуваку выше прямо написал - при его объемах памяти хэшмапа не нужна, т.к. линейный поиск (ЛИНЕЙНЫЙ) сделает всё и так достаточно быстро без хэширования
Valery
она работает не так быстро как ожидается
Valery
но 100% так как ожидается
Ilya
Loo
кто хочет зайти в эту субботу, все в https://www.meetup.com/Rust-%D0%B2-%D0%9F%D0%B8%D1%82%D0%B5%D1%80%D0%B5/events/nhpkmpyxkbkb/ отметились? :)
Sergey
Оо
Sergey
Тоже хочу
Sergey
локация и правда бомбическая (про флакон), привет вам от петонщечгов!
Alexander
Официального объявления пока нет... 26-е, дефолт-сити, White Eagle Pub, 19:00.
Приходите, будем вас холиварить.
Αλεχ
Αλεχ
линейный поиск есть для Ord
Αλεχ
только вот Eq не всегда Ord
Alex
на сходках не был еще, там все тупо бухают?
Sergey
@Fedcomp обмен опытом, ну 🙂.
Sergey
а че на счет митапа?
Alexander
Гыыы... А у нас на следующей даже девушка будет читать доклад! Вот.
Alexander
И нет, не все бухают. У нас есть и совсем непьющие. Один.
Anonymous
В Минске в прошлый раз была. Хотя возможно, что за компанию.
Alex
сосисочные вечеринки?
Anonymous
պլհկ
meanwhile at avito
https://medium.com/avitotech/bioyino-a-distributed-scalable-statsd-3445acb177eb
https://github.com/avito-tech/bioyino/blob/master/Cargo.toml
Loo
Kerrigan
պլհկ
Loo
что пилит чото у себя
Loo
если не ошибаюсь
Anton
Anton
Удалил сообщение
Anton
Круто чо
Αλεχ
Αλεχ
а, ты прям предлагаешь вместо мапы все в массиве хранить?
Αλεχ
ну так блин это так не будет работать
Αλεχ
больше 4000 итераций нельзя совершить в солидити, например
Αλεχ
так что 4001 элемент я уже не проверю, даже если он подходит
Berkus
о, ботики поперли
Berkus
@notplhk
Berkus
Berkus
но тогда будет нужен Ord :)
Αλεχ
О чем я сразу и сказал)
Berkus
ну я ж не знаю что ты там пишешь, раз хранишь в векторе - значит может быть реально маленький кейс
Αλεχ
не
Αλεχ
я пытаюсь реализовать для общего случая
Αλεχ
до 2^32 элементов
Αλεχ
пока что я склоняюсь к тому, чтобы не обрабатывать коллизии вообще
Αλεχ
просто требовать от чувака ключ