Gerador de números aleatórios

Um gerador simples de números aleatórios ou, como é mais corretamente chamado, um gerador congruencial linear pode ser demonstrado pela equação x1 = (a*x0+1)%65535. a, x0 e x1 são inteiros não negativos menores que 65535. A equação é inicializada com x0. O primeiro número gerado, x1, é então usado como semente para a próxima rodada e assim por diante. Se escolhermos a=7 e x0=12345, os primeiros 5 números gerados são 20881, 15098, 40152, 18925, 1406.

Como esses geradores são usados em jogos de azar e apostas on-line, seria vantajoso poder prever o próximo número "aleatório" a ser gerado. Crie uma função que receba 2 números aleatórios gerados sequencialmente pela equação acima e retorne o próximo número a ser gerado. O valor de a será diferente para cada caso de teste e não é fornecido. A semente inicial, x0=12345, é a mesma para todos os casos de teste. Se a resposta não puder ser determinada, retorne None.

Exemplos

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

Observações

  • Acredito que os casos de teste cujo resultado é None não possam ser resolvidos. Se você descobrir um método para resolvê-los, publique um comentário.
  • Todos os casos de teste foram obtidos dos primeiros 10 números gerados.