problem z rand

Napisalem program pod kompilator gcc. Ograniczylem w nim zakres generowania liczb losowych. #undef RAND_MAX #define RAND_MAX 1000 i ustawilem wartosc startowa srand(sliczba); mimo tego liczby generowane przez funkcje rand() nie sa ograniczane do ustawionego zakresu. Mozecie mi podpowiedziec dlaczego? Jacek M.

Reply to
Jacek M.
Loading thread data ...

Hm - a jakie to gcc ?

Bo z ciekawosci zajrzalem do AVRgcc - rand() jest funkcja zewnetrzna i zaden #define nie bedzie mial na nia wplywu.

Ewentualnie .. zle zrozumiales dokumentacje - to nie sluzy do ustawiania zakresu liczb generowanych przez rand(), ale sluzy twojemu programowi, zeby wiedzial jakiego zakresu moze sie spodziewac.

Dzeiki temu mozesz napisac program tak ze po zmianie biblioteki/procesora program po przekompilowaniu bedzie nadal dobrze dzialal ..

J.

Reply to
J.F.

Podobnie dzieje sie z random(). Mimo ograniczenia wartosci maksymalnej podobnie jak wyzej poprzez #undef RANDOM_MAX #define RANDOM_MAX 1000 i ustawienia wartosci poczatkowej srandom(sliczba); generowane liczby nie sa ograniczne do zadeklarowanego zakresu... Moze ktos podpowie co zrobic by program dzialal w sposob przewidywalny. Jacek M.

Reply to
Jacek M.

Program jest kompilowany AVRgcc. Wydawalo mi sie, ze uzycie define spowoduje ograniczenie zakresu generowanych liczb. Niestety funkcja random, ktora mogla by nadawac sie do ograniczenia zakresu liczb losowych w bibliotece stdlib dla tego kompilatora jest typu void. Szkoda, ze nie ma mozliwosci ograniczenia tego zakresu. Dzieki za pomoc. Jacek M.

Reply to
Jacek M.
Reply to
Krzysztof Rudnik

Użytkownik Jacek M. napisał:

Wydawało Ci się. Przecież ta biblioteka jest już skompilowana.

Niestety funkcja random, ktora

Niee, wtedy to byłby już zupełny kanał ;-)

Szkoda, ze nie ma mozliwosci

Jest. Np:

#define my_random(x) (random() & 7)

Albert

Reply to
Albert Bartoszko
Reply to
Piotr Wyderski

Jak z wszystkim ;-)

Koledze chodziło o gcc. Nie sądzę, aby port na avr odbiegał od wersji standardowej

Patrz "man rand", "man random"

Dlatego jeśli potrzebujesz liczb losowych do zapewnienia

Ach, dla zapewnienia bezpieczeństwa to postarałbym się przede wszystkim o lepszego programistę niż twórca wątku ;-) (bez obrazy)

Albert

Reply to
Albert Bartoszko

Co za skrzywienie zawodowe. A moze Jacek robi np sterownik lampek choinkowych, ktorego nikt nie bedzie lamal :-)

J.

Reply to
J.F.
[...]

Troche podstawowych informacji:

formatting link
a poza tym to polecana juz "Applied Cryptography" Schneiera i absolutna podstawa: "Handbook of Applied Cryptography" Menezesa, van Oorschot i Vanstone (gruba, napisana w dosc zwiezly sposob, na lekture do poduszki raczej nie polecam, ale znajdziesz tam w zasadzie wszystko). Ta ostatnia jest dostepna w calosci w wersji elektronicznej:
formatting link
pzdr. j.

Reply to
Jacek R. Radzikowski

Użytkownik Jacek M. napisał: [...]

Nie jestem, ani nie czuję się omnibusem. Jeśli uraziłem to serdecznie przepraszam, nie było to moim celem.

Albert

Reply to
Albert Bartoszko

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.