eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingrandom delphi w c/c++Re: random delphi w c/c++
  • Data: 2009-05-15 15:23:23
    Temat: Re: random delphi w c/c++
    Od: "Sarr." <s...@g...pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    Sarr. wrote:
    > Michoo wrote:
    >> Sarr. pisze:
    >>> witam,
    >>>
    >>> jedno pytanie do grupy: jak w c/c++ zasymulowac random number
    >>> generator z delphi?
    >>>
    >>> wikipedia twierdzi, ze jest to Linear congruential generator
    >>> [http://en.wikipedia.org/wiki/Linear_congruential_ge
    nerator] i nawet
    >>> podaje parametry, ale jakos nie udalo mi sie uzyskac zadowalajacych
    >>> wynikow.
    >> W sensie co było nie tak z funkcją rand()?
    >>
    >> Jest posixowa funkcja random o sporych możliwościach, ale będziesz jej
    >> mógł użyć pewnie tylko na gcc.
    >>
    > nie chodzi o dobry czy lepszy random - chodzi o dostanie identycznych
    > wynikow jak daje random z delphi6.
    >
    > pisze plugin w c++ do programu, ktory napisany byl w delphi6 wlasnie.
    > lwia czesc funkcjonalnosci idzie do pluginu a trzeba zachowac zgodnosc
    > wstecz.
    >
    >
    > pozdrawiam,
    >
    > Sarr.
    sam sobie odpowiem. sprawa rozwiazana, problemem bylo uzywanie przez
    mnie wartosci signed/unsigned. w kazdym razie, dla zainetersowanych,
    ponizej dzialajaca klasa symulujaca random z delphi6:

    class DelphiRandom
    {
    public:

    DelphiRandom(unsigned int seed)
    {
    SetSeed(seed);
    }
    void SetSeed(unsigned int seed)
    {
    _seed = seed;
    }
    int Next(const int max)
    {
    unsigned long long result = (unsigned long long)GetNext() * max;
    return (int)(result >> 32);
    }

    private:

    unsigned int GetNext()
    {
    // X[n+1] = ( a * X[n] + c ) % m
    // m = 232
    // a = 134775813 [0x08088405]
    // c = 1
    _seed = _seed * 0x08088405 + 1; // %m not needed as _seed is 32 bit
    return _seed;
    }

    unsigned int _seed;

    };

    cheers,
    Sarr.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj

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: