Gå til innhold

Generere et random tall fra -5 til 5


Anbefalte innlegg

Skrevet (endret)

Heisann! Har et enkelt spm. Hvordan kan jeg på en enkel måte generere et tall fra -5 til 5. Et eksempel på og løse det hadde vært fint.

 

Kan vel kanskje løse det ved hjelp av rand() og srand(), men mener jeg har lest at det ikke er anbefalt?

Endret av Kjeksen
Videoannonse
Annonse
Skrevet (endret)

Har klart og lage et random tall ved hjelp av denne koden. Men dette lager et tall fra 0 til 99. Jeg trenger og sette fra -5 til 5. :hmm:

 

#include <cstdlib>
#include <ctime>
#include <iostream>

using namespace std;

int main() {

   int j;
   const int N = 100;

   srand( (unsigned)time( NULL ) );

   for (int i = 0; i < 5; i++) {
       j = (int) N * rand() / (RAND_MAX + 1.0);
       cout << j << endl;
   }

   return 0;
}

Endret av Kjeksen
Skrevet

Eksempel (utestet, errors may occure :) ):

 


#include <cstdlib>     // random funksjoner
#include <ctime>      // time - for seeding
#include <iostream> // output

using namespace std;

int main()
{

  srand( (unsigned)time( NULL ) );  // seed
  cout << ((rand()%11) - 5);         // % 11 genererer --> 0 - 10, offset med 5

}

Skrevet (endret)

Jaja, var på sporet i d minste :p

tenkte ikke på modulus hmmf..

 

Funket supert! takker :D

Endret av Kjeksen
Skrevet

rand og srand er ikke anbefalt for seriøs bruk, ettersom de er basert på dårlige algoritmer. For lek er de helt greie.

 

For mer seriøs bruk, bruk

drand48,  erand48, lrand48, nrand48, mrand48, jrand48, srand48, seed48, lcong48 - generate uniformly distributed pseudo-random numbers

Godt nok til det meste, botsett fra sikker kryptering.

Skrevet
rand og srand er ikke anbefalt for seriøs bruk, ettersom de er basert på dårlige algoritmer. For lek er de helt greie.

 

For mer seriøs bruk, bruk

drand48,  erand48, lrand48, nrand48, mrand48, jrand48, srand48, seed48, lcong48 - generate uniformly distributed pseudo-random numbers

Godt nok til det meste, botsett fra sikker kryptering.

okai. Det jeg lager nå er ikke akkurat seriøse greier, så srand() og rand() får holde for nå ;)

Skrevet

Endre 6 til 7, og alt er såre vel.

 

Modulus er ikke annet enn rest etter divisjon. Deler du på 7, så blir resten et eller annet fra 0 til 6. Trekk fra 3, så får du fra -3 til +3.

 

Natta.

Skrevet (endret)
Hmm, hvordan blir det modulus visst jeg bare skal ha ifra -3 til 3 da? Modulus var jaggu rare greier :p

Er ikke så veldig rart :p

 

Det er "resten" i en divisjon.

 

eks:

 

1%2 = 1 (1:2 gir et resultat på 0, men en rest på 1)

122%10 = 2 (da 122:10 gir 12 (hele) med en rest på 2)

Endret av Manfred

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...