Generador de números aleatorios
Un generador simple de números aleatorios o, como se denomina más correctamente, un generador congruencial lineal puede demostrarse mediante la ecuación x1 = (a*x0+1)%65535. a, x0 y x1 son enteros no negativos menores que 65535. La ecuación se inicializa con x0. El primer número generado, x1, se utiliza entonces como semilla para la siguiente ronda, y así sucesivamente. Si elegimos a=7 y x0=12345, los primeros 5 números generados son 20881, 15098, 40152, 18925, 1406.
Dado que estos generadores se utilizan en juegos de azar y apuestas en línea, sería beneficioso poder predecir el siguiente número "aleatorio" que se generará. Diseña una función que reciba 2 números aleatorios generados secuencialmente mediante la ecuación anterior y devuelva el siguiente número que se generará. El valor de a será diferente en cada caso de prueba y no se proporciona. La semilla inicial, x0=12345, es la misma para todos los casos de prueba. Si no se puede determinar la respuesta, devuelve None.
Ejemplos
random([1, 1]) ➞ 1
# a=0
random([12347, 12348]) ➞ 12349
# a=1
random([5806, 9802]) ➞ 37768
# a=171
random([48028, 25564]) ➞ 12565
# a=21
random([36020, 26121]) ➞ None
# a=77
random([39000, 24931]) ➞ None
# a=4Notas
- Creo que los casos de prueba cuyo resultado es
Noneno se pueden resolver. Si encuentras un método para resolverlos, publícalo en un comentario. - Todos los casos de prueba se tomaron de los primeros 10 números generados.