I’m current stuck in the random generator. The requirement specification shows a sample like this:
Random rand = new Random(3412);
The rand result is not directly given out, but used for other performance.
I’d written the same code as above to generate a random number by a seed 3412.
however, the result of the rest performance is totally different with sample.
The generating result is 518435373, I used the same code tried on the online c# compiler, but getting different result of generation which is 11688046, the rest performance result was also different with the sample.
So I’m just wondering is that supposed to be different in different machines?
BTW, could anyone provide the result from your machine just see if it’s same with me.
I would expect any one implementation to give the same sequence for the same seed, but there may well be different implementations involved. For example, an “online C# compiler” may well end up using Mono, which I’d expect to have a different implementation to the one in .NET.
I don’t know whether the implementations have changed between versions of .NET, but again, that seems entirely possible.
The documentation for the
Random(int)constructor states:… but it doesn’t specify the implications of different versions etc. Heck, it doesn’t even state whether the x86 and x64 versions will give the same results. I’d expect the same results within any one specific CLR instance (i.e. one process, and not two CLRs running side-by-side, either*.
If you need anything more stable, I’d start off with a specified algorithm – I bet there are implementations of the Mersenne Twister etc available.