SERIOUS Seed BugArchives Forums/BlitzPlus Bug Reports/SERIOUS Seed Bug
| This is bad.|
The random number generated is 9.
Bit of a problem when you are picking a random column for a number when generating a Sudoku puzzle when the Sudoku array is only (8,8) - Array Index out of Bounds.
So I wrote some code to see how often this happens - I stopped it from running after it found the first 9 seeds that cause Rand() to return numbers outside the specified range. That means that I only checked the first
267,250,961 positive seeds from a possible
2,147,483,647 - not counting the negative seeds.
If you run the following code, you will see that all nine of these seeds caused Rand(0,8) to return 9.
For x=1 To 9 Read a SeedRnd a Print Rand(0,8) Next b$=Input$() ;for pause purposes Data $012ADB51,$03b0c470,$04db9fc1,$076188e0,$088c6431 Data $0b124d50,$0c3d28a1,$0ec311c0,$0feded11
What's even more bizarre - given that I already know that Blitz2D doesn't generate the same random numbers from the same seeds as BlitzPlus, is that when I run the final piece of code above in Blitz2D - all of the above seeds return 8 (including the seed in the first example that caused my prog to crash).
So maybe there isn't an algorithmic difference in the random number generators afterall - just a few bugs in the BlitzPlus version.
...when I run the final piece of code above in Blitz2D - all of the above seeds return 8
And also in Blitz3D.
| So, anything happening? |
| Someone wrote a better random number generator. Morduun i think? You could search the code archives. |
Someone wrote a better random number generator. Morduun i think? You could search the code archives.
I'm sure thats it! :)
| You could always work round the problem by sticking a Mod 9 On the end of it.|
Print Rand(0,8) Mod 9
I accept not an ideal solution, but you won't get any out of range errors and the results will be predictable.
| Funny thing when you use rnd instead of rand it works fine. |