Forum Gry Hobby Sprzęt Rozmawiamy Archiwum Regulamin

Forum: ANSI C - problem

17.11.2012 18:17
1
zanonimizowany430282
71
Senator

ANSI C - problem

zaczne od tego, ze jestem calkowicie zielony jesli chodzi o ansi c, pierwszy raz stycznosc z nim mialem miesiac temu, czyli na poczatku semestru.

mam do zrobienia na uczelnie projekt w postaci programu liczacego wartosc calki oznaczonej wielomianu stopnia n metoda podstawowa monte carlo.
napisalem juz czesc, w ktorej wprowadzam stopien wielomianu, wspolczynniki przy kolejnych potegach x i przedzial calkowania.

teraz potrzebuje fragmentu, ktory bedzie losowal liczby z podanego przedzialu calkowania. i tu sie pojawia moje pytanie. jest funkcja rand, ktora losuje liczby, ale sa one z przedzialu od 0.
jak zrobic tak, zeby losowane iksy byly z tego konkretnego przedzialu o wczesniej podanych koncach? rowniez wtedy, gdy jeden lub oba z koncow sa liczbami ujemnymi.

ktos sie na tym zna i podpowie w ktora strone powinienem pojsc?

17.11.2012 18:24
master53
2
odpowiedz
master53
100
Legend

Hint:

rand() % (max - min + 1) + min; // liczba z przedziału <min; max> dla min, max > 0

18.11.2012 15:41
😊
3
odpowiedz
zanonimizowany430282
71
Senator

dzieki, troche mnie naprowadziles i juz sobie poradzilem, ale w troche inny sposob. (dziala dla ujemnych przedzialow)

dla potomnych:

argument=xp+odleglosc*(rand()/(RAND_MAX+1.0));

gdzie:
argument to x ktory mam wylosowac,
xp to poczatek przedzialu,
xk to koniec przedzialu,
odleglosc to odleglosc miedzy koncami przedzialu, jest zdefiniowana przez odleglosc=xk-xp

Forum: ANSI C - problem