Random Numbers in Cpp
84This little software project illustrates techniques for working with random numbers in C++. The project consists of 3 individual files:
- main.cpp, the entry point for the application,
- RandomNumber.cpp, the demonstration code,
- and RandomNumber.h, the prototype for the RandomNumber method.
The target compiler is Visual Studio C++, but the code should be functional on any mainstream C++ compiler as well. GCC would be another possibility if you don't have Visual Studio.
There is no Random class, since C++ is a hybrid OOP language and all that legacy stuff must be supported. This code can be easily wrapped into a class if necessary.
To create the tutorial in Visual Studio, create each of the three files, below, then create a Visual Studio C++ project and add the three files to the project. The "Empty Project" type works well for this example. An Empty Project has no default modules added to it.
Object Oriented Programming. Random Numbers
/******************************************************************************
* Fun with Random Numbers RandomNumbers.cpp *
* *
* Author: nicomp *
* Abstract: Random Number stuff. *
* *
* *
* Call randomize() to initialize the random number generator. *
* Call srand(seed) to initialize the generator with a specific seed value. *
* "Random" number sequences can be repeated by using the same seed. *
* *
* Revision History: *
******************************************************************************/
#include <iostream>
#include <stdlib.h> // random(), srand() function prototypes
#include <time.h> // time() function prototype
#include "RandomNumbers.h"
using namespace std; // Not the default in some compilers
void RandomNumberDemo()
{
// Using srand() allows repeatable random number sequences...
srand(42); // randomize using a specific seed. Any seed will work for this demo.
cout << "\n integer random numbers...";
// random returns a number between 0 and RAND_MAX in stdlib.h
for (int i = 0; i < 5; i++) cout << "\n => " << rand();
// ====================================================================
cout << "\n 3 decimal place floating point random numbers between 0 and 1...";
srand(unsigned int(time(0))); // Get a little more random
for (int k = 0; k < 5; k++) {
int lottoNo; // variable is local to this block
float result;
lottoNo= rand();
// Generate a random # between 1001 and 1999 where the ones digit is not zero
while (1)
{
// cout << "\n<<" << lottoNo << ">>";
if ((lottoNo>= 1001) && (lottoNo<= 1999)) // between 1001 and 1999
if ((lottoNo / 10) * 10 != lottoNo) // does it have a non-zero last digit?
break;
lottoNo = rand();
}
result = ((float)lottoNo / 1000) - 1;
cout << "\n =>" ;
// The numbers only have 3 decimal places anyway. This is not needed
// cout.precision(4); // This specifier resets after each output
cout.width(6); // Field width - blank padded on the left
cout << result;
cout << "<<";
}
cout << "\n"; // Just to clean up the display
}
RandomNumbers.h
// Include this header only once. // It's not an issues in this particular project, but it's a good habit. #pragma once /****************************************************************************** * Fun with Random Numbers RandomNumbers.h * * * * Author: nicomp * * Abstract: prototypes for random numbers functions in this demo. * * * * Revision History: * * * * * ******************************************************************************/ // Function Prototype void RandomNumberDemo();
main.cpp
/******************************************************************************
* main() for Fun with Random Numbers main.cpp *
* *
* Author: nicomp *
* Abstract: Random Number stuff. *
* *
* Revision History: *
* *
* *
******************************************************************************/
//#include <iostream>
#include "RandomNumbers.h"
using namespace std;
void main()
{
RandomNumberDemo(); // invoke the demo function
}- Write a C/C++ program for displaying today's date by...
Programming Tutorials : C/C++ Programming It's a simple program to start learning structure in C/C++. This program will display today's date. Suppose today's date is 30.10.2008. So, the output of the program...
Random numbers are useful in simulations and testing. The concept of the random number seed is important; in most cases we want a repeatable sequence of random numbers. If we can't repeat a set of test parameters, we can't replicate our results. Selecting the same seed guarantees that scenario.
In other words, we want numbers that are randomly distributed over a known range, but we need to retrieve the same sequence of numbers on-demand.
Random numbers can also be used to play the lottery, which, as we all know, is simply a tax on people who are bad at math.
Suggested Reading
|
C++ Primer Plus (5th Edition)
I have used this book many times in classes I teach. It's wordy and thorough. The author even sprinkles in a little humor here and there.
Price: $32.00
List Price: $59.99 |
|
The C++ Programming Language: Special Edition
Price: $40.00
List Price: $84.99 |
|
C Programming Language (2nd Edition)
Every self-respecting C++ programmer needs this book to look cool. If you don't have it, you might not be welcome as the lunch table with the other programmers.
Price: $37.80
List Price: $60.33 |
- Maine State Lottery
- Illinois Lottery
Official website of the Illinois Lottery - Have a Ball! - Iowa Lottery
- Michigan Lottery
- New Jersey Lottery
- New York Lottery
- Welcome to the Ohio Lottery
The Ohio Lottery offers customers a wide variety of instant games and on-line games to play at over 9,000 licensed retailer locations across the State of Ohio. - The Florida Lottery
The Florida Lottery
PrintShare it! — Rate it: up down flag this hub
Comments
It must be all the lotto players out there! lol Actually,there are a number of computers around the world,that just run random number generators .The purpose for this has something to do with consiousness.Some Scientists have discovered that when some major event like the twin towers being hit by planes ,or major earthquakes and the like cause these random number generators to change their random behaviour during such occurances.
lotto! I like that. Good thought.
Has anyone used this program to predict lottery numbers?
Good knowledge about programing ....Good Creative hub.
My first hub. It still has a special place in my heart.
- Working With Collections In Java - Part 1
A look at the Collections Framework of Java which provides a large set of popular data structures such as stacks, linked lists and dynamic arrays. Read This Java Tutorial - 16 months ago
- Quicksort in Java
A quick intro to the Quicksort algorithm in Java, showing an efficient (if not optimal) way to sort. Read This Java Tutorial - 17 months ago













nicomp says:
7 months ago
This is my most popular hub. I don't know why. Perhaps random numbers are wildly popular.