能不能设计针对确定数对的通用转换函数?

给你N个数对,形式为<a1, b1>、<a2, b2>、……、<aN, bN>,能不能设计一个转换函数r=transform(c),专门针对这N个数对的,其中c是数对左边的值,r是右边的值 。
注意这些数对是没有任何规律的,唯一确定的是所有数对的值都在0~255之间,数对个数在10个以内。

简单举个例子如下:
给你四个数对:
2, 4
5, 6
7, 187
128, 253
设计一个转换函数,使得4=transform(2),6=transform(5),187=transform(7),253=transform(128),不知道能不能利用数学表达式设计出这样的一个transform函数,谢谢。


更新:如果要求r=transform(c)的同时也要求c=transform(r)呢?也就是说是个对称函数

阅读 3.2k
1 个回答

用数学表达式恐怕很难做到,这个我不熟,我只是觉得数学表达式只能表达确定的关系,对于这种完全随机配对的情况恐怕难以表达。

如果用算法逻辑来表达这个 transform 是完全没问题的,你可以看看 gperf 这个项目,你的这种需求就是 perfect hash 的典型需求。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进