创建一个具有相同域和范围的随机双射函数。随机双射函数是指使用随机算法(或至少是伪随机算法)将元素从域映射到范围的函数,而不是像 x=y 这样的函数。域和范围有时可能是一个非常小的集合,例如 {1,2,3,4,5},因此配对函数不起作用。而且,计算资源是有限的,所以它应该是一个计算上可行的函数。
编辑:我在问题中的意思是,假设您有一个包含 5 个数字 A = {1,2,3,4,5} 的列表。现在你要做的是创建一个随机函数 f ,当应用于上述集合时,它会给出一个包含相同上述数字的集合,但以不同的顺序具有足够高的概率。就像我做了 f(A) = B,那么 B 可能是 {2,4,1,5,3}。所以 A 到 B 的映射是 1->2、2->4、4->1、4->5 和 5->3。但是,如果我再次执行 f(A),那么这次的映射应该是另一个这样的随机映射,即如果 f(A) = C,那么 C 可以是 A 的任何一种可能的排列,概率均等。这可以通过计算第 n 个排列轻松实现。但我怀疑的是,如果我想在给定的特定时间间隔内找出集合A中的一个数字的映射,那么它是否可以在恒定的时间和空间中完成。