在阵列之间找到双射的算法

Mar*_*nas -1 algorithm wolfram-mathematica bijection

我有两个阵列,说A={1, 2, 3}B={2, 4, 8}(数组项计数和编号可能不同).如何在阵列之间找到双射.

在这种情况下,它会 f:A->B; f(x)=2^(x)

Leo*_*rin 6

我不认为这个问题有一个普遍的解决方案.您可以尝试FindSequenceFunction,但它不会总是找到解决方案.对于手头的情况,您需要更长的列表:

In[250]:= FindSequenceFunction[Transpose[{{1, 2, 3}, {2, 4, 8}}], n]

Out[250]= FindSequenceFunction[{{1, 2}, {2, 4}, {3, 8}}, n]
Run Code Online (Sandbox Code Playgroud)

In[251]:= FindSequenceFunction[Transpose[{{1, 2, 3, 4}, {2, 4, 8, 16}}], n]

Out[251]= 2^n
Run Code Online (Sandbox Code Playgroud)

你也可以玩FindFit,如果你对猜测有一些猜测:

In[252]:= FindFit[Transpose[{{1, 2, 3}, {2, 4, 8}}], p*q^x, {p, q}, x]

Out[252]= {p -> 1., q -> 2.}
Run Code Online (Sandbox Code Playgroud)