Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > pl.comp.programming > #32107

Re: Bisekcja...

From AK <nobody@nowhere.net>
Newsgroups pl.comp.programming
Subject Re: Bisekcja...
Date 2018-12-11 20:25 +0100
Organization Aioe.org NNTP Server
Message-ID <pup2vf$152p$1@gioia.aioe.org> (permalink)
References <fe997904-3e7c-46f7-961a-8f81574e9c99@googlegroups.com> <a74ee41a-84f6-4d75-b3d4-2378925657e5@googlegroups.com> <ccf96138-1b48-4dbe-9d6f-bad82232843b@googlegroups.com> <puof83$gf9$1@gioia.aioe.org> <33c3a592-b320-4891-9f98-35eef2872371@googlegroups.com>

Show all headers | View raw


On 2018-12-11 19:35, DMR wrote:
>> Dlaczego nie jakies hashowanie ?
> 
> 
> Wykombinowanie dobrej funkcji, kolizje, kupa danych... Nie wiem, czy to ogarnę.
> Ale zgłębiam temat. Bo niby - czemu nie? ;-)
> 

...a nie lepiej uzyc cus gotowego/sprawdzonego ?
Np takie cos w Pythonie (na dosc slabym kompie-szefc bez butow chodzi:)
dla 10 000 000 'rekordow':

import timeit

dictionary = { key: str(key).zfill(6) for key in range(10000000) }
print(timeit.timeit('temp = { key: str(key).zfill(6) for key in 
range(10000000) }', number=1))

print(dictionary[9999999], timeit.timeit('dictionary[9999999]', 
number=10000, globals=globals()) / 10000)
print(dictionary[1],       timeit.timeit('dictionary[1]', 
number=10000, globals=globals()) / 10000)
print(dictionary[5000009], timeit.timeit('dictionary[5000009]', 
number=10000, globals=globals()) / 10000)
print(dictionary[100000],  timeit.timeit('dictionary[100000]', 
number=10000, globals=globals()) / 10000)

daje takie czasy:
D:\>py zzz.py
5.356959160756147
9999999 7.252555713392894e-08
000001 5.5035608509168556e-08
5000009 7.855509932497284e-08
100000 8.065047214307341e-08

i to dla teoretycznie dosc slabych hashy, bo dla liczb naturalnych.
Oczywiscie szybkosc hashowania liniowa wzgledem rozmiaru,
a szybkosc szukania praktycznie niezalezna od rozmiaru.

PS: Oczywiscie to klasyczny dict/set (czyli klucz jest unikalny)
Istnieja oczywiscie: multidict i multiset, choc w Py niestandardowo.
W/w ma glownie obrazowac ze kilkadziesiat tysiecy to dzis raczej
"pryszcz" dla klasycznych/gotowych rzeczy.

AK

Back to pl.comp.programming | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Bisekcja... DMR <mezzogm@gmail.com> - 2018-12-10 15:48 -0800
  Re: Bisekcja... Wojciech Muła <wojtek.mula@gmail.com> - 2018-12-11 00:51 -0800
    Re: Bisekcja... DMR <mezzogm@gmail.com> - 2018-12-11 03:20 -0800
      Re: Bisekcja... Borneq <borneq@antyspam.hidden.pl> - 2018-12-11 13:40 +0100
        Re: Bisekcja... DMR <mezzogm@gmail.com> - 2018-12-11 05:33 -0800
      Re: Bisekcja... AK <nobody@nowhere.net> - 2018-12-11 14:48 +0100
        Re: Bisekcja... DMR <mezzogm@gmail.com> - 2018-12-11 10:35 -0800
          Re: Bisekcja... AK <nobody@nowhere.net> - 2018-12-11 20:25 +0100
            Re: Bisekcja... AK <nobody@nowhere.net> - 2018-12-11 20:35 +0100
              Re: Bisekcja... DMR <mezzogm@gmail.com> - 2018-12-12 05:27 -0800
                Re: Bisekcja... Wojciech Muła <wojtek.mula@gmail.com> - 2018-12-12 11:53 -0800
                Re: Bisekcja... DMR <mezzogm@gmail.com> - 2018-12-12 14:46 -0800
        Re: Bisekcja... AK <nobody@nowhere.net> - 2018-12-11 19:35 +0100
        Re: Bisekcja... DMR <mezzogm@gmail.com> - 2018-12-14 00:28 -0800
          Re: Bisekcja... DMR <mezzogm@gmail.com> - 2018-12-14 00:37 -0800
          Re: Bisekcja... Borneq <borneq@antyspam.hidden.pl> - 2019-08-09 09:27 +0200

csiph-web