rand()???

Tags:    c++ javascript

<< < 12 > >>
Er der nogen der kan forklare mig rand()???

Fungere det ligesom med PHP at den vælger et tilfældigt tal mellem det indtastede?

F.eks:
rand(0,10);
returnere et tal mellem 0 og 10?


I will Survive...



17 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Nej det fungere absolut ikke sådan, det er vist lidt mere tricky i c++, har ikke selv fundet ud af det, så følger lige med her....:)
Glad for flash...? Så tjek lige Flash gruppen, her på udvikleren ---> http://www.flash.udvikleren.dk




Hmm... Det forstår jeg ikke?

Hvis jeg skriver

cout << rand()%11+10;

skriver den 18??? Hvorfor det?


I will Survive...


rand() giver et tal mellem 0 og 32768

når du bruger % får du resten af en division, resten af en heltalsdivision er altid mellem 0 og det højeste tal.

eks.

hvis rand() giver 114

rand()%11 = 4 fordi 11 går op i 114 ti gange 114-11*10 = 4

rand()%11+10 = 14

Håber du forstår min forklaring

MvH

Stefan Svensson
http://fusket.frac.dk



Hej!
Hvis du er medlem af C++ gruppen, kan du gå ind i http://www.udvikleren.dk/groups/thread.php?f=59&t=17&gid=59 ....
Det er en opgave, hvor man skulle udskrive et tilfældigt tal, imellem 0 og 100.
Så det skulle gerne hjælpe dig! Nogen gange, kan man godt selv søge ;)

Med Venlig Hilsen: CHadi




rand() returner et tal mellem 0 og RAND_MAX, RAND_MAX bliver for det meste sat af compileren til 32768.

Hvis man vil have et tilfældigt tal i mellem 0 og 9

rand()%10

Hvis man vil have et tilfældigt tal mellem 10 og 20

rand()%11+10

MvH

Stefan Svensson
http://fusket.frac.dk

[Redigeret d. 02/10-03 20:24:39 af Stefan Svensson]



rand() returner et tal mellem 0 og RAND_MAX, RAND_MAX bliver for det meste sat af compileren til 32768.

Hvis man vil have et tilfældigt tal i mellem 0 og 9

rand()%10

Hvis man vil have et tilfældigt tal mellem 10 og 20

rand()%11+10

MvH

Stefan Svensson
http://fusket.frac.dk

[Redigeret d. 02/10-03 20:24:39 af Stefan Svensson]

Hmm... Det forstår jeg ikke?

Hvis jeg skriver

cout << rand()%11+10;

skriver den 18??? Hvorfor det?


I will Survive...




Hmm... Det forstår jeg ikke?

Hvis jeg skriver

cout << rand()%11+10;

skriver den 18??? Hvorfor det?


I will Survive...

rand() giver et tal mellem 0 og 32768

når du bruger % får du resten af en division, resten af en heltalsdivision er altid mellem 0 og det højeste tal.

eks.

hvis rand() giver 114

rand()%11 = 4 fordi 11 går op i 114 ti gange 114-11*10 = 4

rand()%11+10 = 14

Håber du forstår min forklaring

MvH

Stefan Svensson
http://fusket.frac.dk

Damn det er svært at forstå... Ikke fordi at din forklaring er dårlig men mere fordi jeg er skod til matematik...

Du skriver :

Hvis rand() giver 114

Når jeg kører mit program giver rand altid 41...
Hvis nu man antager at jeg vil have et tal mellem 1 og 10 hvad skriver jeg så?

I will Survive...

[Redigeret d. 02/10-03 21:36:56 af PHP-nørden]




Rand giver hele tiden 41 hos dig fordi man først skal give tilfældighedsgeneratoren et tal:
srand( (unsigned)time( NULL ) );

her er en lille skabelon til hvordan du får et tilfældigt tal mellem min og max.

rand() % (int)((( max) + 1) - (min))) + (min)


MvH

Stefan Svensson
http://fusket.frac.dk




Rand giver hele tiden 41 hos dig fordi man først skal give tilfældighedsgeneratoren et tal:
srand( (unsigned)time( NULL ) );

her er en lille skabelon til hvordan du får et tilfældigt tal mellem min og max.

rand() % (int)((( max) + 1) - (min))) + (min)


MvH

Stefan Svensson
http://fusket.frac.dk

hmmm... Skal jeg så bare udskifte "max" med det højeste tal og "min" med det mindste??

I will Survive...




hmmm... Skal jeg så bare udskifte "max" med det højeste tal og "min" med det mindste??


Ja

MvH

Stefan Svensson
http://fusket.frac.dk




hmmm... Skal jeg så bare udskifte "max" med det højeste tal og "min" med det mindste??


Ja

MvH

Stefan Svensson
http://fusket.frac.dk

Burde

cout << rand()%(int)(((10)+ 1)-(0)))+(0);

ikke give et tal mellem 0 og 10???
Den vil ikke kompilere... Jeg bruger Dev-C++



I will Survive...



<< < 12 > >>
t