Arrays 把一个向量变成一个状态…一个多维数组

Arrays 把一个向量变成一个状态…一个多维数组,arrays,multidimensional-array,Arrays,Multidimensional Array,这就是问题所在 我有一个值向量,比如: x = [0,4,2,0] 以及对应于每个x的可能值范围: 0: 0-9 4: 0-9 2: 0-5 0: 0-1 这意味着状态空间是:10*10*6*2 我需要一个函数,calculatestate,它在特定向量的状态空间中给出一个唯一的整数值。例如: calc_state(x) -> (10*6*2)*0 + (6*2)*4 + (2)*2 + (1)*0 我的问题是:这是正确的公式吗?还是我工作太少?我觉得应该有另外一个10的因子…但当我

这就是问题所在

我有一个值向量,比如:

x = [0,4,2,0]
以及对应于每个x的可能值范围:

0: 0-9
4: 0-9
2: 0-5
0: 0-1
这意味着状态空间是:
10*10*6*2

我需要一个函数,calculatestate,它在特定向量的状态空间中给出一个唯一的整数值。例如:

calc_state(x) -> (10*6*2)*0 + (6*2)*4 + (2)*2 + (1)*0

我的问题是:这是正确的公式吗?还是我工作太少?我觉得应该有另外一个10的因子…但当我写下这一点时,我觉得更有信心它是正确的…

是的,这很有效。额外的因子10来自最大化所有向量条目,在这种情况下,结果为
10*10*6*2-1

是。Stripes属性可以帮助编写调用状态(x):


是的,三天的节目马拉松。捕捉到这个bug,我将对应的向量数乘以它自己的范围*以前的范围…brain dead=)
space=arange(10*10*6*2).reshape(10,10,6,2)
def call_state(x): return (x*space.strides).sum()