Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6326961
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 24, 20262026-05-24T17:11:23+00:00 2026-05-24T17:11:23+00:00

I wanted to generate a random integer, so I used C++ rand(void) and srand(int)

  • 0

I wanted to generate a random integer, so I used C++ rand(void) and srand(int) functions:

int main(){
     srand(1);
     cout << rand() << endl;
     return 0;
}

OK, it suits my needs. Each time I execute it I get same result, which I like it!
But there is a problem. When I executed it on my computer I got 16807 as output. But when I executed it on another machine, I got 1804289383.

I know that rand() and srand(int) have a simple implementation similar to this:

static unsigned long int next = 1;

int rand(void) // RAND_MAX assumed to be 32767
{
    next = next * 1103515245 + 12345;
    return (unsigned int)(next/65536) % 32768;
}

void srand(unsigned int seed)
{
    next = seed;
}

So why? Is it possible that rand() has different implementations on multiple machines? What should I do?

I want to modify the other machine in such a way that I get 16807 from that machine too.
Please note that I love the rand implementation on my computer. Please show me a way that other machine gets same result with mine.

Thanks in advance.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-24T17:11:24+00:00Added an answer on May 24, 2026 at 5:11 pm

    Yes, rand() has different implementations; there’s no requirement for them to be identical.

    If you want consistent sequences across implementations and platforms, you can copy the sample implementation from the C standard section 7.20.2. Be sure to rename both rand and srand so they don’t collide with the standard library’s versions. You might need to adjust the code so the types have the same size and range across the implementations (e.g., use uint32_t from <stdint.h> rather than unsigned int).

    EDIT: Given the new information from the comments, it looks like the requirements are different from what we thought (and I’m still not 100% clear on what they are).

    You wants to generate random numbers on two systems consistent with a stored file that you’ve generated on one system, but you’re unable to transfer it to the other due to network issues (the file is about a gigabyte). (Burning it to a DVD, or splitting it and burning it to 2 CDs, isn’t an option?)

    Suggested solution:

    Write a custom generator that generates consistent results on both systems (even if they’re not the same results you got before). Once you’ve done that, use it to re-generate a new 1-gigabyte data file on both systems. The existing file becomes unnecessary, and you don’t need to transfer huge amounts of data.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I wanted to generate a random number 32 characters in length from a specified
I wanted to create a simple program which would generate random numbers between 0
I wanted to generate a set of coordinates distributed uniformly at random within a
I just wanted to know how do I generate random number using J2ME CLDC
On Linux I am used to using mkpasswd to generate random passwords to use,
I wanted to generate one fix view using interface builder, but the size of
If you wanted to generate a pseudorandom alphanumeric string using T-SQL, how would you
I wanted to use T4 to generate properties for a partial class. I'm running
I am trying to generate some code using CodeDom. I wanted to know if
Guys, I wanted generate the pmd report while building the project so I have

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.