eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingSekwencje Weyl w generatorach liczb pseudolosowychSekwencje Weyl w generatorach liczb pseudolosowych
  • X-Received: by 2002:a0c:8c81:: with SMTP id p1mr19323674qvb.7.1633297450398; Sun, 03
    Oct 2021 14:44:10 -0700 (PDT)
    X-Received: by 2002:a0c:8c81:: with SMTP id p1mr19323674qvb.7.1633297450398; Sun, 03
    Oct 2021 14:44:10 -0700 (PDT)
    Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!2.eu.feeder.erj
    e.net!feeder.erje.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.gigane
    ws.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.go
    oglegroups.com!not-for-mail
    Newsgroups: pl.comp.programming
    Date: Sun, 3 Oct 2021 14:44:10 -0700 (PDT)
    Injection-Info: google-groups.googlegroups.com; posting-host=77.169.12.87;
    posting-account=5sNFBgoAAAAxlae8lv99mPyGsDs6ynwB
    NNTP-Posting-Host: 77.169.12.87
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <4...@g...com>
    Subject: Sekwencje Weyl w generatorach liczb pseudolosowych
    From: "o...@g...com" <o...@g...com>
    Injection-Date: Sun, 03 Oct 2021 21:44:10 +0000
    Content-Type: text/plain; charset="UTF-8"
    Content-Transfer-Encoding: quoted-printable
    Lines: 44
    Xref: news-archive.icm.edu.pl pl.comp.programming:215749
    [ ukryj nagłówki ]

    Definicja Weyl sequence jest następująca:

    https://en.wikipedia.org/wiki/Weyl_sequence

    W artykule podano liczbę 362437 do utworzenia 32-bitowej sekwencji. Ale ogółem
    wystarczy liczba względnie pierwsza z modulusem.

    Pytanie dlaczego wzięto akurat taką liczbę? Czy można wziąć też liczbę 3? Również
    jest względnie pierwsza z 2^32. Ile jest takich liczb, które nadadzą się do
    utworzenia takiej sekwencji? Czy może to być dowolna liczba nieparzysta?

    Nie do końca rozumiem też sens stosowania tej sekwencji. Wiem, że George Marsaglia
    użył ich do udoskonalenia generatora Xorshift. Z jakichś powodów te sekwencje lepiej
    nadają się mieszania z wynikami generatora niż zwykły licznik: 1,2,3,..., który też
    moglibyśmy zastosować. Ale właściwie co czyni je użytecznymi? Bo same w sobie nie
    produkują wystarczająco losowych wyników. Te sekwencje zostały też zastosowane do
    ulepszenia generatora Middle Square:

    https://arxiv.org/pdf/1704.00358.pdf

    Wyniki sekwencji są po prostu dodawane do wyników klasyczne Middle Square. Ale nie do
    końca rozumiem jaka teoria za tym stoi i znowu - dlaczego w publikacji przyjęto
    akurat taką, a nie inną liczbę względnie pierwszą z modulusem? Zarzuty do Midlle
    Square dobrze podsumowała Mellisa O'Neil:

    https://www.pcg-random.org/posts/too-big-to-fail.htm
    l

    Generator ten tworzy random mapping, a w takim odwzorowaniu cykle są stosunkowo
    krótkie i mamy bodaj niezerowe prawdopodobieństwo natknięcia się na jakiś fatalny,
    krótki cykl (co dla generatora liczb pseudolosowych jest dyskwalifikujące). Widynski
    zaproponował więc mieszanie wyników Middle Square z sekwencjami Weyl, co wydłuża cykl
    całego generatora. Tylko jak to się dzieje, że zostaje on wydłużony.

    Sam pracuję nad pewnym generatorem liczb pseudolosowych, który też działa jak random
    mapping i 32-bitowa wersja ze względu oczekiwaną długość cyklu ~ 41067 () nie zdaje
    testów. Ale dodawanie do wyników Weyl sequence (stała z artykułu 362437) poprawia
    wyniki. Nie rozumiem jednak dlaczego.

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: