-
1. Data: 2009-05-15 12:21:41
Temat: random delphi w c/c++
Od: "Sarr." <s...@g...pl>
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. czy ktos moglby mnie pchnac w odpowiednim kierunku?
pozdrawiam,
Sarr.
-
2. Data: 2009-05-15 13:30:43
Temat: Re: random delphi w c/c++
Od: Michoo <m...@v...pl>
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.
--
Pozdrawiam
Michoo
-
3. Data: 2009-05-15 14:28:55
Temat: Re: random delphi w c/c++
Od: "Sarr." <s...@g...pl>
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.
-
4. Data: 2009-05-15 15:23:23
Temat: Re: random delphi w c/c++
Od: "Sarr." <s...@g...pl>
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.