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=4

Notas

  • Creo que los casos de prueba cuyo resultado es None no 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.