C++ :: Consistent Random Numbers Across Implementations

Mar 5, 2014

If I seed with the same seed I want the same sequence of numbers no matter if I use GCC, Clang, VC++ or Windows, Linux, Mac. I think this is guaranteed by the standard engines in <random>.

I also want to be able to save the state of engines and restore them in a program compiled with a different compiler. I have been under the impression that the stream operators for the standard engines did not guarantee this kind of compatibility across implementations but after looking a bit closer I think it should work, assuming obvious stuff like CHAR_BIT == 8 and that the same character set is used.

When it comes to distributions like std::uniform_int_distribution and std::geometric_distribution I don't think I can rely on a consistent behavior. It looks like the standard only say what probability density function they should have. It doesn't explain how exactly the output should be calculated from the number that the engine produce. For this reason I don't think I can use any of the distributions in the standard library if I want a consistent sequence of numbers everywhere.

So am I correct that I can safely use the standard engines as long as I don't use the distributions? Or do I have to use a library with a fixed implementation to guarantee this to work consistently across compiler implementations?

View 3 Replies


ADVERTISEMENT

C++ :: Make 10 Random Numbers Thus Making 10 Random Flips Of Coin?

Aug 31, 2013

I want to make 10 random numbers thus making 10 random flips of a coin. I am getting 10 tails or 10 heads!

Code: #include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
int main(int argc, const char * argv[])
{

[Code].....

View 4 Replies View Related

C++ :: DFS Algorithm Malfunction - Graph Is Consistent

Apr 18, 2012

I wrote class DFS - Depth-first search. This algorithm check that this graph is consistent. Below is code of class

Code:
#ifndef DFS_H
#defineDFS_H
class DFS{
private:
std::stack<int, std::vector<int> > stos;//stos do przechowywania wezlow w dfs'ie
int *odwiedzony;
int liczbaWezlow;

[Code] ....

When i initialize dfs i use 2 parameters. On the next step i would like show all content array odwiedzony. Regardless of the given parameters of the array always has a value of zero. Where i made mistake and how to repair?

View 10 Replies View Related

C++ :: Getting Consistent Type Names Under Windows And Linux?

Dec 4, 2014

I'm writing a server/client application in C++, one linux and one windows. The generic communication method is to use the boost::serialization package, but I'll also use a header to distinguish the type of the serialized string.

Here is the struct that the two programs communicate with

struct SerializeString {
std::string type_name;
std::string serialized_string;
friend class boost::serialization::access;
template<typename Archive>
void serialize(Archive& ar, const unsigned version) {
ar & type_name & serialized_string;
}
};

When one side wants to pass an object to another side, it uses typeid(T).name() for the field type_name. The receiving side receives SerializeString and checks its type_name against various acceptable structs as follows:

if (ss.type_name == typeid(XXX).name()) {
// deserialize ss.serialized_string to XXX and do something with it
} else if (ss.type_name == typeid(YYY).name()) {
// deserialize ss.serialized_string to YYY and do something with it
} else if (ss.type_name == typeid(ZZZ).name()) {
// deserialize ss.serialized_string to ZZZ and do something with it
} else {
// etc...
}

This worked fine when I was using Windows VS2013 on two different windows platform. However when I switch one to Linux there is a problem because their typeid(XXX).name() returns different things. So question here, is there a generic way to get some sort of unique names across platform / compiler? Or is my method reasonable at all?

View 7 Replies View Related

C++ :: Using Typedefs To Abstract Multiple Implementations

Jan 12, 2014

I am writing a program that aims to be cross-platform, so it supports multiple low-level implementations for certain operations. My initial approach is to write an abstract class to use as an interface, and inherit from that when writing specific implementations.

However, I realized that the specific implementation that I will be using is known at compile-time, and I to not need any polymorphic behaviour. I realized that I could just write this:

Code:
class Impl1 {};
#ifdef USING_IMPL1
typedef Impl1 Interf;
#endif

Clients would then go on using the Interf type, regardless of the underlying implementation. The only drawback that I can see is that my Implementation classes are not forced to conform to an interface, but the compiler will tell me anyway if I try to use, in my client code, a method that is not defined.

View 3 Replies View Related

C++ :: Hide Class Implementations Using Headers?

Oct 16, 2013

I am currently working on data abstraction. I was able to write a class (a simple clock, see Malik's C++ book, Chapter 12 for reference). As you can imagine, I am quite new to programming and C++.

Well, now I created a header file clock.h that includes the class definition and function prototypes as well as a implementation.cpp file with the implementation details of the class.

I managed to include all this in my program.cpp and compile it (using dev c++). Everything works exactly as I want it to.

So now my question is, how can I create ... I am not sure how it is called ... a header, but without revealing to the user how the functions are implemented. Basically the user should get a file (the object code of the header + implementation.cpp?) and simply #include it into his own program.

So instead of giving the original header + implementation.cpp to the user I want to hide how my class does its stuff and instead just provide some file that can be included and then used in a program (I will write a documentation how to use the class).

I am not sure how all this is called, I am sure there is some name for it...

View 4 Replies View Related

C++ :: Random Integers (numbers)

Oct 17, 2014

I'm trying to make a C++ program that generate 6 random numbers ( from 100,000 to 999,999 ), okay, so I wrote a few lines..

Code:
srand(time(0));
for (int i = 0; i < 5; i++)
{
std::cout << 100000 + (rand() % 999999) << std::endl;
}

The problem is, that it generates numbers like this:

117,207
123,303
131,083
... etc etc..

They're all starts with 100K, i want them to be an actual random..

View 8 Replies View Related

C++ :: Random Numbers Are Not In Specified Range

Nov 9, 2014

My program behaves weird... I wanted to generate 10 random numbers from 1 to 100 each of them bigger than previous, using the while loop and function that returns a random number in specified range.

When I run the program, I get numbers much bigger than 100, even negative number, and numbers are same every time I run the program.

Code:
#include <ctime>#include <cstdlib>
#include <iostream>
using namespace std;
int range(int low, int high);

[Code] .....

View 2 Replies View Related

C :: Generating Random Numbers

Oct 19, 2014

I have a program that generates random numbers. After the random number is generated, the program asks if you want to generate another random number. However, if you generate another random number, it is always the same as the first random number. How can I fix this?

View 5 Replies View Related

C :: Generate Random Numbers

Mar 17, 2013

I'm trying to generate random numbers so that I can assign people to teams. So far I have come up with this

Code:

int generateTeam(){
int i, teamNumber, c, n;
for (c = 0; c <= 5; c++) {
n = rand()%100 + 1;
}

[code]....

}//end generateTeam I'm not sure how to make it so that I can exclude the previous random number when generating the next one. As an example, I have 22 students and I get the number 19. Now I can't have 19 again because that guy already has it.

View 3 Replies View Related

C++ :: Arrays Getting Random Numbers

Oct 30, 2013

Ok so Im suppose to make this program were the user inputs the size of the array then the user sets a certain range min and max for random numbers to be generated. I have a function named fillarray()

#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int fillarray();

[Code] ....

Whenever i run the program i keep on getting a loop for the size of the array.

View 1 Replies View Related

C++ :: Generating Big Random Numbers In C

Feb 16, 2013

I want to generate big random numbers in C(not C++ please).By "big" I mean integers much bigger than srand(time(NULL)) and rand() functions' limit(32767).

I tried writing: (note:I am not able to see "code" tag button in this editor,so I am not using it)

//****
int randomnumber;
srand( time(NULL) );
randomnumber = (( rand() % 33 ) * ( rand() % 33 ) * ( rand() % 33) * ( rand() * 33) * (rand() % 33 )) + 1
//****

But I have doubts about it's randomness quality.Also there is another problem,the program can't know the maximum random number it should use before user input,so maximum random number may need to use much smaller maximum random number according to user input.

Is there a better algorithm to create big random numbers in C?

View 2 Replies View Related

C++ :: Adding Random Numbers?

Nov 12, 2013

I am designing a math program for kids. I want the program to produce 2 random numbers and check the sum of these numbers against the user's guess. I have the generating random numbers portion complete. What's the coding procedure to compare the sum to the user's guess?

View 9 Replies View Related

C++ :: How Many Random Numbers Make Up A 100

Jun 21, 2013

Assuming you have an array of these values x=[16,18,23,24,39,40] how would you write a function to generate random numbers that can add up to a 100? I need to know how many random numbers can add up to a 100.

View 3 Replies View Related

C++ :: Not Getting Random Numbers Every Time

Feb 5, 2014

This is my program i have to choose for random number between 1-25 and display them the program works perfectly just that every time i run its always the same numbers.

#include <iostream>
#include <cstdlib> // include library to use rand
using namespace std;
int main(){
int winner1; // declare variables
int winner2;

[Code] ....

View 3 Replies View Related

C++ :: How To Get 5 Random Numbers Horizontally

Dec 13, 2013

i wrote this code but don't know if the numbers i array for p will generate in that order. how to get 5 random numbers horizontally and insure that 7,15, 22,27,31 will not generate in that exact sequence?

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
#include <time.h>
using namespace std;
int main()
{

[Code]...

View 3 Replies View Related

C++ :: Generating Big Random Numbers In C

Feb 15, 2013

I want to generate big random numbers in C(not C++).By "big" I mean integers much bigger than srand(time(NULL)) and rand() functions' limit(32767).

I tried writing: (note:I am not able to see "code" tag button in this editor,so I am not using it)

//****
int randomnumber;
srand( time(NULL) );
randomnumber = (( rand() % 33 ) * ( rand() % 33 ) * ( rand() % 33) * ( rand() * 33) * (rand() % 33 )) + 1
//****

But I have doubts about it's randomness quality.Also there is another problem,the program can't know the maximum random number it should use before user input,so maximum random number may need to use much smaller maximum random number according to user input.

Is there a better algorithm to create quality big random numbers in C?

View 14 Replies View Related

C++ :: Generate Random Numbers To A File?

Apr 3, 2013

The program is to generate random numbers to a file and will have one integer parameter, Open a file and then using a loop write the required number of random numbers to the file. Scale the random numbers from 1 and 100 inclusive. Then closes the file .The last function will read the numbers in the file into your program. so far i have

Code: #include <iostream>
#include <string>
#include <iomanip>
#include <ctime>
#include <fstream>
#include <cstdlib>

[Code] .....

View 12 Replies View Related

C++ :: Generating Random Numbers In Parallel

Nov 8, 2013

I generate a series of random numbers in parallel (using OpenMP), but depending on what number of threads I invoke, I get a different result. From that I conclude that I have made an error somewhere!

Here is the MWE, which generates a number between 0..1 and increments a variable if the generated variable is larger than 0.5:

Code:
#include <random>
typedef std::uniform_real_distribution<double> distr_uni;
#define max_threads 1
using namespace std;

[Code] ....

When I set max_threads=1 I get 50027, but when max_threads=60 (on a machine that supports it....) I get 50440.

The sensitive RNG and its engine I have declared within the parallelized area, so it's not really clear to me where the error can possibly be.

Looking for error that is apparently there?

View 8 Replies View Related

C :: Bubble Sort With Random Numbers

Nov 6, 2014

i'm trying to fill an array with random numbers and then sort them via bubblesort. it seems to work so far. the problem is, that i seem to get the same numbers for the same input. somehow the randomness isn't working.

Code:

#include <stdio.h>
#include <stdlib.h>
int main() {
int a, b, c, d, e, f;
}

[code]....

View 3 Replies View Related

C :: Converting Random Numbers Into Chars?

Apr 3, 2013

I am having difficulty completing 7th last line below I marked the line with an arrow.

Code:
int main(void) {
int MaxNum, /*number of random nos to generate */
i, /*index */
value,

[Code].....

View 4 Replies View Related

C :: Check Random Numbers To Appear Once Or Twice Only In Each Row Or Column

Oct 25, 2013

Code:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
int main()
#define rows 9
#define columns 9

[code]....

View 9 Replies View Related

C :: Store Random Numbers In Array

Jan 11, 2015

i cannot print the values stored in the array ?

Code:
#include<stdio.h>
#include<math.h>
#include<time.h>
#include<stdlib.h>
double randf();

[Code] ....

View 7 Replies View Related

C :: Output Calculation (random Numbers)

Mar 24, 2014

Why do i keep getting wrong results

Code:
#include "stdafx.h"#include <stdio.h>
#include <string.h>
nt main(void){
char name[40];
int numbers[50];

[Code] .....

View 4 Replies View Related

C :: Find Average Of Random Numbers

Aug 17, 2013

I have the random values down but when I try to assign randValue to another integer I get an error.I want to make an inner loop where I find 5 random number 50 times and print the average of those numbers.

I know I have the bare bones of the below, but without giving me a huge shove in the right direction can I have a poke? I have been programing for three months now. I have noticed when I do simple fun projects I learn more then what my professor assigned to me. The class is over but I want to keep building.C++ starts in one week...

Code:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define NUMBERS 5

int main(int argc, const char * argv[]) {
float randValue = 0.0;
int i;

[code]....

View 9 Replies View Related

C :: Generating Random Numbers Without Repeating?

Sep 20, 2014

Inside my loop is this

srand(time(NULL))
a=rand()%10;

So it will generate numbers again and again as the loop goes on but it always repeat some numbers. My question is, how would you generate numbers without repeating? Somebody told me that i have to use auto increment, but i really have no idea about that.

View 8 Replies View Related







Copyrights 2005-15 www.BigResource.com, All rights reserved