Derandom
Pseudo random number predictor
Version: 2.5
Added: 12-01-2015
Updated: 19-07-2024
Added: 12-01-2015
Updated: 19-07-2024
Predicts pseudo random numbers based on a sequence of observed numbers.
Enter a sequence of numbers that you obtained from a pseudo random number generator like, for instance, the Java standard pseudo random number generator or the Mersenne Twister MT19937. The app will then try to predict following numbers from the generator.
The app expects all numbers to be entered as integers or floating point numbers between zero and one. Currently, floating point numbers are supported for the Mersenne Twister only. Three input modes are supported:
1. Text field lets you enter the numbers directly on the device.
2. File lets you choose a file with newline separated number strings.
3. Socket opens a server socket on the device. You can then connect with a custom client by means of a client socket and send newline separated number strings to the server. After each number the server will send back the next newline separated predictions. Each block of predictions is separated by an additional newline.
To test the app, enter the following numbers in the Text field:
These numbers were sampled from the Java linear congruential generator Random.nextInt(). Thus, the app should detect LCG: Java after the third number input, and numbers in the prediction history should appear in green instead of red, indicating that those numbers were correctly predicted.
The source code of this app is published on GitLab. There you can also find a Python program for testing socket input: https://gitlab.com/asnelt/derandom/blob/HEAD/README.md
Enter a sequence of numbers that you obtained from a pseudo random number generator like, for instance, the Java standard pseudo random number generator or the Mersenne Twister MT19937. The app will then try to predict following numbers from the generator.
The app expects all numbers to be entered as integers or floating point numbers between zero and one. Currently, floating point numbers are supported for the Mersenne Twister only. Three input modes are supported:
1. Text field lets you enter the numbers directly on the device.
2. File lets you choose a file with newline separated number strings.
3. Socket opens a server socket on the device. You can then connect with a custom client by means of a client socket and send newline separated number strings to the server. After each number the server will send back the next newline separated predictions. Each block of predictions is separated by an additional newline.
To test the app, enter the following numbers in the Text field:
1412437139
1552322984
168467398
1111755060
-928874005
These numbers were sampled from the Java linear congruential generator Random.nextInt(). Thus, the app should detect LCG: Java after the third number input, and numbers in the prediction history should appear in green instead of red, indicating that those numbers were correctly predicted.
The source code of this app is published on GitLab. There you can also find a Python program for testing socket input: https://gitlab.com/asnelt/derandom/blob/HEAD/README.md