Article View: pl.comp.lang.c
Article #310050Re: Optymalizacja kodu
From: M.M.
Date: Wed, 01 Jan 2020 16:27
Date: Wed, 01 Jan 2020 16:27
44 lines
3476 bytes
3476 bytes
On Sunday, December 29, 2019 at 8:00:28 PM UTC+1, Wojciech Muła wrote: > On Friday, December 27, 2019 at 8:45:01 AM UTC+1, M.M. wrote: > > On Thursday, December 26, 2019 at 9:57:09 AM UTC+1, Wojciech Muła wrote: > > > Sprawdź, jak się sprawuje ten algorytm https://lemire.me/blog/2019/07/03/a-fast-16-bit-random-number-generator/ > > > > Mam pytanie, czy można mieć kod tego generatora w swoich programach? Jest > > jakaś licencja? > > https://github.com/lemire/Code-used-on-Daniel-Lemire-s-blog/blob/master/README.md > > "Unless otherwise stated, I make no copyright claim on this code: you may consider it to be in the public domain. > > Don't bother forking this code: just steal it." > > w. Dzięki za informacje. Z kilku kolejnych ale nadal pobieżnych testów wynika to samo co poprzednio: Można łatwo napisać bardzo wydajną implementację tego generatora i przechodzi krótkie testy dla wybranych zarodków. Na średnie testy czeka którąś dobę w kolejce. Jak przejdzie średnie testy, to zrobię bardzo długie testy, generator wydaje się godny zainteresowania. Nie googlałem za teorią do tego generatora. Na pierwszy rzut oka widać, że stan generatora bazuje na dodawaniu stan += value; Więc jak value jest dobrze dobrane, to okres generatora będzie równy 2^64 przy stanie na liczbie 64 bitowej. Losowość liczb podawanych przez generator zależy od funkcji hash na którą są podawane kolejne wartości. Podobne funkcje hash dla liczb całkowitych bez znaku można znaleźć na stacku. Widziałem też gdzieś algorytm genetyczny do generowania takich funkcji, niestety jak działał w szczegółach to nie mam bladego pojęcia. Zastanawiam się czy ten generator by nie był źródłem gorszych wyników jakby obliczenia trwały całe lata na wielu maszynach, albo wręcz na wielu kartach graficznych. Na moim przestarzałym laptopie wygenerowanie 16 miliardów liczb tym generatorem w jednym wątku trwa zaledwie 20 sekund. Pozdrawiam
Technical Details
Message-ID:
<d8e49b2a-0a07-45e0-86a2-1a2a401bc9eb@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erje.net!feeder.erje.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!g89no3237104qtd.0!news-out.google.com!w29ni343qtc.0!nntp.google.com!g89no3237098qtd.0!postnews.google.com!google-groups.googlegroups.com!not-for-mailReferences:
<ed3041b7-c05f-43f3-887a-9a12a9633741@googlegroups.com> <2104ea83-5daa-4752-9a63-ed3346a14082@googlegroups.com> <82f8e967-0d0e-4bae-b005-aacb301b2349@googlegroups.com> <c635fa1a-0b40-4790-8155-5b92fd4682e9@googlegroups.com>Show Full Headers
Complete Article Headers
X-Received: by 2002:ac8:7a6c:: with SMTP id w12mr56318074qtt.233.1577896020908; Wed, 01 Jan 2020 08:27:00 -0800 (PST) X-Received: by 2002:a81:55cd:: with SMTP id j196mr51316142ywb.377.1577896020706; Wed, 01 Jan 2020 08:27:00 -0800 (PST) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erje.net!feeder.erje.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!g89no3237104qtd.0!news-out.google.com!w29ni343qtc.0!nntp.google.com!g89no3237098qtd.0!postnews.google.com!google-groups.googlegroups.com!not-for-mail Newsgroups: pl.comp.lang.c Date: Wed, 1 Jan 2020 08:27:00 -0800 (PST) In-Reply-To: <c635fa1a-0b40-4790-8155-5b92fd4682e9@googlegroups.com> Complaints-To: groups-abuse@google.com Injection-Info: google-groups.googlegroups.com; posting-host=77.254.46.242; posting-account=xjvq9QoAAAATMPC2X3btlHd_LkaJo_rj NNTP-Posting-Host: 77.254.46.242 References: <ed3041b7-c05f-43f3-887a-9a12a9633741@googlegroups.com> <2104ea83-5daa-4752-9a63-ed3346a14082@googlegroups.com> <82f8e967-0d0e-4bae-b005-aacb301b2349@googlegroups.com> <c635fa1a-0b40-4790-8155-5b92fd4682e9@googlegroups.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <d8e49b2a-0a07-45e0-86a2-1a2a401bc9eb@googlegroups.com> Subject: Re: Optymalizacja kodu From: "M.M." <mmarszik@gmail.com> Injection-Date: Wed, 01 Jan 2020 16:27:00 +0000 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit