Найти индекс упорядоченного набора из N элементов

Описание проблемы: набор списков из N целых чисел i1,i2,....,iN с 0<= i1<=i2<=i3<=....<=iN <=M, создается, начиная с одного целого числа 0<=i1<=Mи многократно добавляя одно целое число, которое больше или равно последнему добавленному целому числу. При добавлении последнего целого числа для получения окончательного набора списков индекс запускается, начиная с 0 to BinomialC[M+N,N)]-1,

For example, for M=3, i1=0,1,2,3 

так что списки

{0},{1},...,{3}. 

Добавление другого целого числа i2>=i1 приведет к

{0,0},{0,1},{0,2},{0,3},
{1,1},{1,2},{1,3},
{2,2},{2,3}
{3,3}

с индексами

0,1,2,3,
4,5,6,
7,8,
9.

Этот индекс может быть представлен в терминах i1,i2,...,iN и M. Если бы условия>= не присутствовали, то это было бы просто i1*(M+1)^(N-1)+i2*(M+1)^(N-2)+...+iN*(M+1)^(N-N), Но, в случае выше, есть отрицательный сдвиг в индексе из-за ограничений. Например, N=2, сдвиг равен -i1(i1+1)/2, а индекс равен i = i1*(M+1)^1 + i2*(M+1)^0 -i1(i1+1)/2.

Вопрос: Кто-нибудь, особенно из математики, знает, как написать индекс для общего случая N элементов? или только последнее выражение? Любая помощь будет оценена! Спасибо!

0 ответов

Другие вопросы по тегам