Я не считаю этот вопрос ответственным в его нынешнем виде.Критерий
b(n+1)
не легко угадать из b(n)
не является четко определенным.Вы не указали никаких метрик или количественных ограничений.Поскольку вы продолжаете писать, что « НЕ ищете криптографически безопасную функцию» и упоминаете в комментариях, что «вам действительно все равно, что кто-то найдет эту функцию», неясно, зачем вам нужнабиекция вообще.
Однако вот некоторые идеи, которые могут помочь вам либо найти биекцию, которой вы довольны, либо прояснить свой вопрос, чтобы другие могли помочь.
Любой линейный обратимый полином по модулю max
будет работать.То есть многочлен вида
b(n) = a*n + b mod max
дает биекцию тогда и только тогда, когда
gcd(a,max) = 1
Самый простой случай - a=1
и b=0
, так что b(n) = n
, который, кажется, удовлетворяет вашим смутным ограничениям.
Если вы хотите с ним поразмышлять, вы можете часто менять a
и b
, скажем, генерировать случайное число (но не забудьте проверить, что gcd(a,max) = 1
или вы не получите биекцию).