Thread: FAQ Randomize?????? (C++)

  1. #1
    Registered User
    Join Date
    Oct 2001
    Posts
    75

    Randomize??????

    Hello


    I was wondering


    how do I randomize a value, I need this to decide random outcomes (obviously) thanks for any help simple code will do me

    cheers

    stealth

  2. #2
    Registered User
    Join Date
    Oct 2001
    Posts
    8
    You can use the rand() function in cstdlib to get a random number.

    It is used like this:

    Code:
    int x = rand() % 5; //x would be between 0 and 4
    Before calling rand(), you should call srand() to seed the random number generator. You must always use a different number when calling srand(), the current time for instance, or else rand() will always give you the same numbers.

    So you might want to do something like this:

    Code:
    #include <cstdlib>
    #include <ctime>
    #include <iostream>
    
    using namespace std;
    
    int RandInt(int a,int b)
    {
       return a + rand() % (b - a + 1);
    }
    
    void main()
    {
       //Seed rand() with current time
       srand(unsigned(time(NULL)));
       //x will be between 2 and 10, inclusive
       int x = RandInt(2,10);
       cout<<x;
    }

  3. #3
    Registered User kitten's Avatar
    Join Date
    Aug 2001
    Posts
    109
    There is more information of randomizing in the FAQ.
    Making error is human, but for messing things thoroughly it takes a computer

  4. #4
    Registered User
    Join Date
    Oct 2001
    Posts
    75

    ok

    ok thanks for the help guys

    cheers

    stealth

  5. #5
    Unregistered
    Guest
    I've tried doing random numbers using that same method and wanted to do random numbers between 1 and 100.

    here are my results
    2, 9,12,19,24, ..... etc, etc you get the idea I guess. There always increasing. Not really random. Is there anyway to get around this?

  6. #6
    Registered User
    Join Date
    Oct 2001
    Posts
    3

    Thumbs up

    Yea there is you could do this


    random{int n ) {


    static bool seeded = false; /* used to ensure seeding done just one */

    int seed;


    if(!seeded) {

    cout <<"Enter a value to randomize a value" << endl;
    cin>> seed;
    cin.ignore(80,'\n');
    srand(seed);
    seeded = true;
    }

    * then you call your rand() */

  7. #7
    Registered User
    Join Date
    Nov 2001
    Posts
    3
    cout <<"Enter a value to randomize a value" << endl;
    cin>> seed;
    cin.ignore(80,'\n');
    srand(seed);
    seeded = true;

    don't work in a visual C++ Dialog window or what ever you want ever there called. And I don't really want to have to enter a value every time I run it. Is there anyother way to do what I want?

  8. #8
    Registered User
    Join Date
    Oct 2001
    Posts
    8
    If you want different seeds everytime you could use the current time. So you would do something like this:

    #include <time.h>

    srand(unsigned(time(NULL)));

    Then you will get different numbers from rand() every time without having to specify a seed value.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Wiki FAQ
    By dwks in forum A Brief History of Cprogramming.com
    Replies: 192
    Last Post: 04-29-2008, 01:17 PM
  2. Help with FAQ
    By JoshG in forum Game Programming
    Replies: 19
    Last Post: 10-29-2002, 07:31 PM
  3. FAQ Check/Lock
    By RoD in forum A Brief History of Cprogramming.com
    Replies: 2
    Last Post: 10-15-2002, 11:21 AM