eGospodarka.pl

eGospodarka.plGrupypl.comp.programming › Prosty generator pseudolosowy 8bit z limitem
Ilość wypowiedzi w tym wątku: 51

  • 1. Data: 2017-11-28 09:48:26
    Temat: Prosty generator pseudolosowy 8bit z limitem
    Od: Adam Klobukowski <a...@g...com>

    Poszukuję prostego (szybkiego) generatora pseudolosowego liczb 8bitowych z górnym
    limitem, tj. jak bym chciał sobie wylosować liczbę z zakresu 0-44. Możecie coś
    polecić?

    AdamK


  • 2. Data: 2017-11-28 14:13:56
    Temat: Re: Prosty generator pseudolosowy 8bit z limitem
    Od: "M.M." <m...@g...com>

    On Tuesday, November 28, 2017 at 9:48:28 AM UTC+1, Adam Klobukowski wrote:
    > Poszukuję prostego (szybkiego) generatora pseudolosowego liczb
    > 8bitowych z górnym limitem, tj. jak bym chciał sobie wylosować liczbę z
    > zakresu 0-44. Możecie coś polecić?

    Za punkt wyjścia bym wziął liniowy lub fibonacciego, potem bym szukał
    czy jest jakaś sztuczka na modulo 45... a może kompilator zna odpowiednią
    sztuczkę? W miarę ogólnych i jednocześnie dużo szybszych nie znajdziesz.
    Dobre generatory są bardzo wolne w porównaniu do tych dwóch. Generator
    fibonaccigo jest ciekawostką, jest szybki i może być bardzo dobry,
    niestety ma dwa problemy: wymaga trochę pamięci, inicjacja trochę
    czasu trwa i nie ma dowodów matematycznych gwarantujących rozkład.


    Pozdrawiam


  • 3. Data: 2017-11-28 14:17:29
    Temat: Re: Prosty generator pseudolosowy 8bit z limitem
    Od: "M.M." <m...@g...com>

    On Tuesday, November 28, 2017 at 2:13:57 PM UTC+1, M.M. wrote:

    > inicjacja trochę czasu trwa

    Właśnie, ile chcesz liczb wygenerować? Jeśli robisz inicjalizację i potem
    generujesz mało liczb (np. 100), to generator fibonacciego też będzie bardzo
    wolny. Fibonacciego działa szybko od minimum 1tys liczb ( w przeliczeniu
    na jedną liczbę - rzecz jasna)

    Pozdrawiam



  • 4. Data: 2017-11-28 14:50:57
    Temat: Re: Prosty generator pseudolosowy 8bit z limitem
    Od: s...@g...com

    W dniu wtorek, 28 listopada 2017 09:48:28 UTC+1 użytkownik Adam Klobukowski napisał:
    > Poszukuję prostego (szybkiego) generatora pseudolosowego liczb 8bitowych z górnym
    limitem, tj. jak bym chciał sobie wylosować liczbę z zakresu 0-44. Możecie coś
    polecić?

    Możecie! A czy Wy czytacie jedyną gazetę programistyczną w Polsze?!?
    Rozwiązanie jest na stronie 21 nr 9/2017:

    #include <random>
    #include <iostream>
    [...]

    std::random_device device;
    std::mt19937 egine{device()};
    std::uniform_int_distribution<> dist(0, 44);

    std::cout << dist(engine) << '\n';

    Jest to C++11 i gwarantuje rozkład normalny otrzymywanych liczb...


  • 5. Data: 2017-11-28 15:09:27
    Temat: Re: Prosty generator pseudolosowy 8bit z limitem
    Od: s...@g...com

    > gwarantuje rozkład normalny otrzymywanych liczb...

    Raczej rozkład liniowy...


  • 6. Data: 2017-11-28 17:39:13
    Temat: Re: Prosty generator pseudolosowy 8bit z limitem
    Od: Adam Klobukowski <a...@g...com>

    W dniu wtorek, 28 listopada 2017 14:50:58 UTC+1 użytkownik s...@g...com napisał:
    > W dniu wtorek, 28 listopada 2017 09:48:28 UTC+1 użytkownik Adam Klobukowski
    napisał:
    > > Poszukuję prostego (szybkiego) generatora pseudolosowego liczb 8bitowych z górnym
    limitem, tj. jak bym chciał sobie wylosować liczbę z zakresu 0-44. Możecie coś
    polecić?
    >
    > Możecie! A czy Wy czytacie jedyną gazetę programistyczną w Polsze?!?
    > Rozwiązanie jest na stronie 21 nr 9/2017:
    >
    > #include <random>
    > #include <iostream>
    > [...]
    >
    > std::random_device device;
    > std::mt19937 egine{device()};
    > std::uniform_int_distribution<> dist(0, 44);
    >
    > std::cout << dist(engine) << '\n';
    >
    > Jest to C++11 i gwarantuje rozkład normalny otrzymywanych liczb...

    Dzięki, ale ja nie chcę C, C++, ani C++11.

    Liczb bede generowal ok. 1000000. Zakres 0-44 jest podany tylko przykladowo i podczas
    generacji kolejnych bedzie się zmieniał. Musi to być w miarę proste i szybkie
    (implementacja bedzie w asemblerze).

    AdamK


  • 7. Data: 2017-11-28 20:13:33
    Temat: Re: Prosty generator pseudolosowy 8bit z limitem
    Od: slawek <f...@f...com>

    On Tue, 28 Nov 2017 08:39:13 -0800 (PST), Adam Klobukowski
    <a...@g...com> wrote:
    > Liczb bede generowal ok. 1000000. Zakres 0-44 jest podany tylko
    przykladowo=
    > i podczas generacji kolejnych bedzie się zmieniał. Musi to by?=
    > ? w miarę proste i szybkie (implementacja bedzie w asemblerze).


    Primo, dlaczego w Asemblerze? Secundo, tego rodzaju kawałki ogólnie
    są proste, nie ma różnicy czy będzie trochę więcej jakichś add czy
    mul


  • 8. Data: 2017-11-29 01:20:36
    Temat: Re: Prosty generator pseudolosowy 8bit z limitem
    Od: "AK" <n...@n...net>

    Użytkownik "M.M." <m...@g...com> napisał:

    > Za punkt wyjścia bym wziął liniowy lub fibonacciego, potem bym szukał
    > czy jest jakaś sztuczka na modulo 45... a może kompilator zna odpowiednią
    > sztuczkę?

    A po cholere jakies sztuczki?

    Majac generator o rozkladzie jednostajnym (czyli <0, 1) ) przez proste skalowanie
    otrzymuje
    sie generator w potrzebnym przedziale.
    Generalnie na podstawie generatora jednostajnego droga obliczania odwrotnej
    dystrubuanty
    mozna otrzymac generator o innym rockladzie niz jednostajny.

    PS: W "moich czasach" standard to byla ksiazka Zielinski ""Generatory liczb
    pseudolosowych"
    czy jakos tak.

    AK


  • 9. Data: 2017-11-29 04:53:39
    Temat: Re: Prosty generator pseudolosowy 8bit z limitem
    Od: s...@g...com

    > Musi to być w miarę proste i szybkie (implementacja bedzie w asemblerze).

    Skoro jesteśmy już przy Asemblerze, to może... użyj sprzętowego generatora liczb
    pseudolosowych. Intel kiedyś (jakieś 15+ lat temu) się chwalił, że używa szumu
    termicznego i nasłuchiwania na magistral (nie wiem jakich) i z tego dostaje się
    wartości które są super przypadkowe. Myślę, że do dzisiaj AMD też opanowało tą
    technologię, tak, że nie jest to rozwiązanie jedynie intelowskie. Myślę, że jest to
    jakieś urządzenie pod jakimś adresem pamięci, tak, że wystarczy to odczytać 1
    instrukcją i już masz dobrą wartość pseudolosową...


  • 10. Data: 2017-11-29 06:59:19
    Temat: Re: Prosty generator pseudolosowy 8bit z limitem
    Od: Adam Klobukowski <a...@g...com>

    W dniu wtorek, 28 listopada 2017 20:13:36 UTC+1 użytkownik slawek napisał:
    > On Tue, 28 Nov 2017 08:39:13 -0800 (PST), Adam Klobukowski
    > <a...@g...com> wrote:
    > > Liczb bede generowal ok. 1000000. Zakres 0-44 jest podany tylko
    > przykladowo=
    > > i podczas generacji kolejnych bedzie się zmieniał. Musi to by?=
    > > ? w miarę proste i szybkie (implementacja bedzie w asemblerze).
    >
    >
    > Primo, dlaczego w Asemblerze? Secundo, tego rodzaju kawałki ogólnie
    > są proste, nie ma różnicy czy będzie trochę więcej jakichś add czy
    > mul

    Takie widzimisie.

    AdamK

strony : [ 1 ] . 2 ... 6



Szukaj w grupach

Szukaj w grupach

REKLAMA

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:

Strona korzysta z plików cookies w celu realizacji usług i zgodnie z Polityką Prywatności. Możesz określić warunki przechowywania lub dostępu do plików cookies w Twojej przeglądarce.