🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.c
Article #310050

Re: Optymalizacja kodu

#310050
From: M.M.
Date: Wed, 01 Jan 2020 16:27
44 lines
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-mail
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>

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