微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 测试测量 > Labview > 把数组转换为数值,数组散列

把数组转换为数值,数组散列

时间:10-02 整理:3721RD 点击:
一个一维数组,维数长度为n(0<n<=16),其元素由0-(n-1)组成,且每个元素只出现一次,即该数组的例如以下形式:
0,1,2,3,4,5
0,2,3,1,5,4,6
0,3,2,1
3,1,2,4,0
由此可知,对于长度为n的数组,其可能的数组有n!(n的阶乘)种,如:
n=1,数组有1种:0
n=2,数组有2种:0,1;1,0
n=3,数组有6种:0,1,2;0,2,1;1,0,2;1,2,0;2,0,1;2,1,0
现求一种散列算法,将一个长度为n数组转换为一个数值,数值可选U64格式,其转换的范围为0~n!,
数组与数值是一一对应关系即可。

找到方法了,这个就是康托展开,百度搜索即可。
或参考http://blog.csdn.net/u010372095/article/details/9904497
在数码问题、魔盘问题的智能算法中会用到。

方法越简单越好,求大神帮忙解答~~

时间复杂度越小越好,空间复杂度符合一般电脑使用即可。

自己顶一下~~~~~

没有人会吗?求大神!

看上去难度不小啊……

好麻烦的散列啊,看了下没看懂,小编解决了吗

说错了,不是魔盒,是魔板。

这个问题问的不错~~编程常见的算法问题。

解决了,原来这个就是康托展开……

学习学习                                                                     

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top