eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingBisekcja...Re: Bisekcja...
  • Data: 2018-12-14 09:28:11
    Temat: Re: Bisekcja...
    Od: DMR <m...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    > ...a po co od razu drzewa? Dlaczego nie jakies hashowanie ?


    No, ktoś ma tu browara! :-)

    Postudiowałem, przespałem się z tematem i jest!
    Pierwszym krokiem do uniknięcia kolizji jest zadbanie o unikalność klucza każdego
    elementu.
    Jako że identyfikatorem ma być łańcuch 15 z dozwolonych 63 znaków, to najłatwiej
    potraktować go jako zapis liczby w systemie "63-kowym" i przeliczyć na dziesiętny.
    Daje to zakres 63^15 = ~10^27... Trochę dużo, nawet, jak na 64 bity. :-)
    Żeby się wstrzelić w zakres 32 bitowego int-a można zrobić co najwyżej 63^5...

    No i się wszystko zgadza - można przecież przeliczać piątkami. :-)
    Da to co najwyżej jedną bardzo teoretyczną kolizje z samego identyfikatora (dobrze
    kombinuję?)

    A dalej, to już klasyka gatunku - indeks leci jako modulo z rozmiaru tablicy
    haszującej (daję ~2x większą, przy kilkudziesięciu tysiącach elementów nie wylazło mi
    nigdy więcej niż 5 powtórzeń na ~10% kluczy), do szybkiego odcedzenia w kolizji
    używam identyfikatora.

    No i gra! :-)


    Dzięki!

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: