Je cherche la formule inverse de l'ordre lexicographique, j'ai un un ensemble de la forme $E\coloneqq\[1,N_1\] \times \[1,N_2\] \times \ldots \times \[1,N_d\] \cap \mathbb{N}^d,d \in \mathbb{N}, N_1,N_2,\ldots,N_d \in \mathbb{N}$ que je peux (et dois) ordonné avec l'ordre lexicographique défini comme suit pour $d=2$:
$(x,y)= (x-1)*N_2+y $ pour tout $(x.y) \in E$
et on procède par récurrence pour $d \geq 2$, le cas $d=1$ étant trivial. Il y a le code mathlab en dessous avec $I \in E$ et $B = (N_1,N_2,\ldots,N_d)$:
Code : Tout sélectionner
function [x] = Lex(I,B)
[d,c]=size(I);
x = I(1,1);
if [d,c]==size(B)
for i=1:(d-1)
x = (x-1)*B(i+1,1)+I(i+1,1);
end;
else
x=pi;
end;
return
end;