Mar*_*nas -1 algorithm wolfram-mathematica bijection
我有两个阵列,说A={1, 2, 3}
和B={2, 4, 8}
(数组项计数和编号可能不同).如何在阵列之间找到双射.
在这种情况下,它会 f:A->B; f(x)=2^(x)
我不认为这个问题有一个普遍的解决方案.您可以尝试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)