Random Numbers in Cpp
This 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 issue 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.
- 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