-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erj
e.net!feeder.erje.net!news.mb-net.net!open-news-network.org!aioe.org!.POSTED.ny
PK7k8oeDafdNpooDsxZQ.user.gioia.aioe.org!not-for-mail
From: Mateusz Viste <m...@x...invalid>
Newsgroups: pl.comp.programming
Subject: Re: Hasz dla permutacji
Date: Mon, 24 Aug 2020 10:20:34 +0200
Organization: . . .
Lines: 40
Message-ID: <20200824102034.5b84b398@mateusz>
References: <5f43602a$0$525$65785112@news.neostrada.pl>
<5f4375ff$0$514$65785112@news.neostrada.pl>
NNTP-Posting-Host: nyPK7k8oeDafdNpooDsxZQ.user.gioia.aioe.org
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-Complaints-To: a...@a...org
X-Notice: Filtered by postfilter v. 0.9.2
Xref: news-archive.icm.edu.pl pl.comp.programming:215117
[ ukryj nagłówki ]2020-08-24 o 10:10 +0200, Borneq napisał:
> On 8/24/20 8:37 AM, Borneq wrote:
> > Mam permutację np. 5 7 1 2 8 ..4
> > chce każdą oznaczyć haszem, chętnie 64 bitowym by uniknąć kolizji
> > 32 bitów choć ostatecznie 32 bity to też male prawdopodobieństwo
> > kolizji. Ma mieć własności:
> > - nie działam na bitach ale na liczbach, np. 1204 999 451 1021...
> > nieduże liczby
> >
> > - prosty hasz z możliwością generowania przyrostowego:
> > jak zamieniam liczbę numer 21 z 45 to ze starego generuję nowy
> > hasz, najlepiej nie z całej tablicy, tak działa prosty XOR, tylko
> > problem: ma być conajmniej 32 bity a nie tyle bitów ile mają
> > liczby
>
> XOR jest nieczuły na kolejność, więc xor wraz z numerem pozycji:
> 0 xor tab[0] xor 1 xor tab[1] xor 2 xor tab[2] xor...
> wada: dla małych liczb hash będzie mały, nie całe 32/64 bity, więc
> byłoby niebezpieczeństwo że dwie permiutacje będą miały ten sam hash.
Rób dwie operacje: xor oraz shift jednego bitu... Tak działa BSD sum.
Zalety takie, że jeszt bardzo szybki oraz wrażliwy na inwersję
wartości. Szerokość takiego hashu sobie możesz dopasować sam, wystarczy
użyć innego clampingu.
3 lata temu popełniłem tego implementację:
https://sourceforge.net/p/bsum/code/HEAD/tree/trunk/
bsum.asm
Mateusz
Następne wpisy z tego wątku
- 24.08.20 10:46 Borneq
- 24.08.20 13:31 Borneq
- 24.08.20 13:48 Mateusz Viste
- 24.08.20 13:52 Borneq
- 24.08.20 13:57 Mateusz Viste
Najnowsze wątki z tej grupy
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
- Press Release - AEiC 2023, Ada-Europe Reliable Softw. Technol.
- Ada-Europe - AEiC 2023 early registration deadline approaching
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2023
- Ile cykli zajmuje mnożenie liczb 64-bitowych?
- Ideologia Polskiego Programisty wer.3
Najnowsze wątki
- 2024-04-25 Szczecin => Senior Fullstack Developer <=
- 2024-04-25 Szczecin => Senior Fullstack Developer <=
- 2024-04-25 Warszawa => Administrator Windows <=
- 2024-04-25 Warszawa => Starszy inżynier oprogramowania (Rust) <=
- 2024-04-25 Polskie sądownictwo w praktyce
- 2024-04-25 Warszawa => Mid/Senior QA Engineer <=
- 2024-04-25 Bieruń => Administrator i wdrożeniowiec Lotus Notes/Domino <=
- 2024-04-25 Wrocław => Lider Serwisu/Programista PLC z językiem niemieckim <=
- 2024-04-25 zysk NBP
- 2024-04-25 Przestepcy chca uciec do Brukseli.
- 2024-04-25 sortowanie w androidzie
- 2024-04-24 Seat Altea MPI 102 KM Czy tym da się jeździć?
- 2024-04-24 Opole => Konsultant/Wdrożeniowiec Comarch ERP XL <=
- 2024-04-24 Warszawa => Senior Software Engineer PHP (BillPro) Kontraktor <=
- 2024-04-24 C+ online, w jakiej tv?