Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > pl.comp.programming > #32107
| 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> |
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
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