Научная статья на тему 'Алгоритм нумерации элементов выборки'

Алгоритм нумерации элементов выборки Текст научной статьи по специальности «Математика»

CC BY
100
10
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ВЫБОРКА M ЭЛЕМЕНТОВ ИЗ N / SAMPLE OF M ELEMENTS FROM N / БИНОМИАЛЬНЫЕ КОЭФФИЦИЕНТЫ / BINOMIAL COEFFICIENTS / БИНОМИАЛЬНОЕ РАЗЛОЖЕНИЕ / BINOMIAL DECOMPOSITION

Аннотация научной статьи по математике, автор научной работы — Коточигов Александр Михайлович

Заметка содержит описание алгоритма, нумерации элементов выборки m элементов из n. Благодаря использованию биномиальных разложений натуральных чисел, алгоритм становится универсальным и удобным для приложений.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

The notes contain description of natural renumbering algorithm for units of sample of m elements from n. Algorithm based on presentation of natural numbers as sum of binomial coefficients.

Текст научной работы на тему «Алгоритм нумерации элементов выборки»

Коточигов Александр Михайлович

УДК 21.7.12

АЛГОРИТМ НУМЕРАЦИИ ЭЛЕМЕНТОВ ВЫБОРКИ

Аннотация

Заметка содержит описание алгоритма, нумерации элементов выборки т элементов из п. Благодаря использованию биномиальных разложений натуральных чисел, алгоритм становится универсальным и удобным для приложений.

Ключевые слова: выборка т элементов из п, биномиальные коэффициенты, биномиальное разложение.

Музыкант: « Вам понравился камерный концерт?»

Математик: «Тривиальный случай, «к»равно трем.»

ВВЕДЕНИЕ

Цель заметки - описать алгоритм, позволяющий упорядочить (занумеровать) элементы множества, представляющего собой выборку из n элементов по т. Интерес к этой задаче возник при попытке анализировать структуру многогранника, являющегося выпуклой оболочкой заданного множества точек.

Поясним задачу и рассмотрим вначале случай, когда размерность равна трем. Алгоритм описания граней прост. Надо перебрать все наборы из трех точек, образующих плоскость, и выбрать те плоскости, у которых все заданные точки лежат в одном полупространстве. Следующий этап - описание ребер многогранника - более сложен. Фиксируем одну вершину. Далее будем перебирать все остальные вершины и выяснять, лежит ли средняя точка отрезка, соединяющего вершины, внутри многоугольника. Здесь проблем с упорядочением выборки еще не возникает. Они появляются с повышением размерности. Предположим, вам надо по поверхности многогранника провести гусеницу из точки А в точку В. Размерность многогранника 20, размерность гусеницы 10. Части поверхности, имеющие размерность меньше 10, гусеница может только пересекать. Как проложить оптимальный

© Коточигов А.М., 2012

и, главное, безопасный путь? Задача может иметь и более серьезную интерпретацию. Допустим, вы должны контролировать некий процесс (перевести его из состояния А в состояние В), зависящий от 20 параметров. Контроль заключается в том, что значения параметров должны постоянно «находиться» на поверхности заданного многогранника. Условия контроля таковы, что в любой момент десять параметров должны оставаться «свободными», то есть найдется такое 10-мерное пространство, что при небольших движениях в нем точка не уходит с поверхности многогранника.

Для описания т-мерных элементов границы многогранника надо фиксировать вершину и перебирать все наборы из т вершин, не содержащие фиксированной вершины. Работа с такими объектами значительно упростится, если будет предъявлен достаточно простой алгоритм, нумерующий элементы выборки (изоморфизм множества элементов выборки и подмножества натуральных чисел {1, 2, ..., Ы}). Без такой нумерации вы не сможете, например, составить матрицу инцидентности, то есть таблицу, указывающую, какие вершины принадлежат заданному т-мерному элементу границы и какие т-мерные элементы границы содержат заданную вершину.

Конкретизируем нашу задачу. Допустим, имеется п элементов, из которых выбира-

ется т. Множество выборок можно представить в следующем виде Д = {¿>15 82,..., 8п}, где 8] = 0 или 1, 51 + к + 8п = т. Алгоритм нумерации таких объектов будет построен в два этапа. Сначала будет описано биноминальное разложение натуральных чисел, с которыш естественно связаны наборы нулей и единиц несколько иной природы, чем Д. На втором этапе будет описан изоморфизм этих множеств нулей и единиц, который позволит занумеровать элементы множества Д.

БИНОМИНАЛЬНОЕ РАЗЛОЖЕНИЕ НАТУРАЛЬНЫХ ЧИСЕЛ

Напомним базовое для всех последующих конструкций определение числа сочетаний из п элементов по т, то есть количества способов выбрать т различных элементов из п имеющихся, причем порядок следования элементов в выборке безразличен. Для этого числа имеется стандартное обозначение и формула вычисления

п!

Ст = -

т!( п - т)!'

Здесь т = 0, 1, ..., п, при этом возникает стандартное обозначение 0! = 1, позволяющее единообразно описывать все возможн-вые ситуации. Эти числа появляются во многих математических моделях, но самая известная среди них - формула бинома Ньютона. Поэтому их назышают еще биномиальными коэффициентами. Здесь будет приведен алгоритм разложения натурального числа в сумму биномиальных коэффициентов.

До того как выписать формулу разложения, приведем некоторые наводящие соображения. Начнем с известного, легко проверяемого тождества

Сп = Сп-1 + Сп-1 .

Последовательно применяя тождество к последнему слагаемому, легко получить:

Сп = Сп-1 + Сп-2 + Сп-3 + к + Сп-т + 1,

(С1 1 = С1 + С0 = С1 +1).

^ п-т+1 п-т п-т п-т '

Это и есть разложение, которое мы будем называть биноминальным для числа

к=Ст.

Оказышается, эта формула допускает значительное обобщение.

Предложение 1

Для любого натурального числа к е (1, Ст ] существует единственный набор натуральных чисел

п{, 1 < 1 < ] < т, п > п1 > п2 > к > п]>т- ] таких, что

к = Ст + Ст-1 + ... + Ст-]+1 +1.

п п2 п]

Эта формула известна. Например, ее можно найти в книге [1: с. 22], где она приводится в качестве задачи. Здесь приведено подробное доказательство, по существу, алгоритм разложения, поскольку дальнейшие конструкции опираются на этот алгоритм.

Техническую основу доказательства составляют два совершенно очевидных утверждения.

Предложение 2

Полуоткрытые интервалы (С^, С^], р = т,..., п -1 образуют дизъюнктное покрытие интервала (1,С^ ].

Для доказательства достаточно убедить-

Ст т

< Ср+1, что верно, так как р +1

т Ср+1

Ст р +1 - т

> 1.

Пример.

п = 7, т = 4, С74=35,

р = т, С44=1, р = т +1, С54=5, р = т + 2,С64=15, р = т + 3,С74 = 35

(1,35] = (1,5] и (5,15] и(15,35]. Следствие 1

Если число К е (1, См ], то существует число N е [М, N -1], такое что

К е (С£, СМ+1] .

Предложение 3

Если число К е (СМ, СМ+1 ], то число К - СМ1е [1, СМ-1]. 1 1

Это утверждение является простым следствие упомянутого выше тождества

СМ _ СМ СМ -1 СМ ^ КГ <£ СМ

= + CN1 , CN1 < К <

л ^ ТУ' Г^М ^ Г^М г^М г^М -1 1 < К - CN, < СМ+1 - СN = CN, .

Коточигов А. М.

Оно очень важно, так как оно поддерживает самоподобие системы, в терминах которой происходит разложение.

Чтобы обосновать формулу предложения 1, опишем алгоритм разложения.

Предположим, что К е (1, См ].

Шаг 1

Числу К соответствует единственное число Ы1, такое что К е (См, См+1] (следствие 1).

Шаг 2

Получаем число К1 = К - См е [1, СМ-1 ] (предложение 3).

Шаг 3

Если К1 = 1, то разложение закончено

К = С^+1.

Если К1 > 1, то возвращаемся к шагу 1 , полагая К = К1,N = Ых, М = М -1.

Алгоритм сводит доказательство предложения 1 к анализу его действия на число к е (1,С™]. После применения к числу к шага 1 получится число п1 такое, что

ке (С™,С:Л п > „ > т -1.

Шаг 2 дает число к1, такое, что

к=С,т+кх, 1 < кх < Ст-1.

Шаг 3 остановит алгоритм, если к1 = 1 (разложение завершено) или перейдет к шагу 1 и вычислит число п2, такое что

к е (Ст-1, О п > п > п >т-2.

После второго применения шага 2 получится число к2, такое что

к = С + С„- + к2, 1< к2 < С^-2.

Продолжая процесс, на г-м проходе цикла получим числа кг и пг:

к-1 е (Ст-+1,СТ+Г1], п > п > К > пг >т-г

к=С^+к+ст-+1+кг, 1 < кг < С:г-г.

Если кг = 1, то разложение окончено.

Остается проверить, что разложение не может продолжаться более т шагов.

Допустим, алгоритм отработал т - 1 раз, тогда

к = Ст + Ст-1 + ... + С2 + к .,

П П2 Пт _1 т-1'

1 < к , < С1 .

т-1 „т .

Если и на этот раз кт -1 > 1 (процесс разложения не завершился), то далее надо применять шаг 1 и искать число пт, такое что

кт-1 е ^„^ С1т +1] .

Остается заметить, что СЯ = Я и, следовательно, полагая пт = кт-1 -1, получим

к , е (С1 , С' +1] = (к , -1, к ,].

т-1 ^ пт' пт +Ы ^ т-1 ' т-1 -1

В итоге

к = Ст + Ст-1 + ... + С2 + С1 +1,

п п2 „т-1 пт '

то есть разложение завершено. Формула полностью доказана.

Доказанная формула позволяет взаимно однозначно сопоставить каждому числу к е (1, Ст ] некоторый набор из 0 и 1.

Следствие 2

Каждому числу к е (1, С^] взаимно однозначно соответствует набор

{У1,У2,-,УпЬ 73 = 0 или 1, /1 + К + /„ < m, составленный на основе биномиального разложения

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

к = Ст + Ст-1 + ... + Ст-3+1 +1,

„1 П2 П3 '

п > п > п2 > к > п3 >т- 3, 1 < 3 <т

по следующему правилу: / = 1, если ^ = п при некотором г, иначе = 0. В частности, для любого к.

Обозначим множество всех таких наборов через Г:

Г = {(71,72,к,7„): 73 =0V! /„ =0,

7 + к + /„ < т}.

Следствие 2 устанавливает правило нумерации элементов множества Г.

Описание нумерации элементов выборки из п элементов по т

Наша цель занумеровать элементы множества А, которое было определенно во введении следующими соотношениями:

А = {81,82,...,8„}, 8к =0 v1, 81 + ... + 8„ = т.

Напомним, что число элементов такого множества равно Сп . Чтобы сделать это, достаточно установить взаимно однозначное соответствие между множествами Г и А.

Это можно выполнить, разбив каждое из множеств на дизъюнктные системы под-

множеств, имеющих одинаковое число элементов.

Для множества Г имеется естественное разбиение:

п—1

Г т-г = {(Г1,Г2,к,Гп ): Гп = 0 ЪУг = т - Г}

г = 0,1,..., т -1. Каждому элементу множества Г т_г можно сопоставить набор натуральных чисел (п1,к,пг), п > п > • •• > пг > т - г,

п = 1 «7, = 1, г = 0,1,..., т -1.

Занумеруем элементы этого множества числами к = Ст + Ст-1 +... + Ст-г+1 +1.

п1 п2 пг

Из предложения 1 следует, что таким образом будет установлено взаимно однозначное соответствие между элементами множества Г и множеством чисел {1,2, к, с: }.

Разбиение множества Д подстроим «под разбиение» множества Г:

Дт = {(М2,-А): 8 = 0}, Дт-1 = {(М2,-Л): = 1, Й1 = 0},

Дт-г = {(d1,d2,к, 8п ):

8п = 1, 8 = 1, 1 < ] < г,8г = 0},

г = 2,...,т -1.

Заметим, что если (81,82,...,8п)е Дт-г, то 8г+1 + 8г+2 + к + 8п-1 = т - г при г = 0,...,т -1.

Следовательно, если

(8,82,...,8п)е Дт-г, то у1 = 0, полагая при 1 <, < г, , = п и = 8i при г < , < п, получим О^... ,7п) еГ:-г .

Табл. 1 иллюстрирует правило «перевода» элементов множества Дт-г в элементы множества Гт-г и обратно.

Приведенное рассуждение и таблица справедливы для всех г, больших нуля. Если г = 0, то положение только упрощается, так как в этом случае и 81 + к + 8п-1 = т, и 71 + к + /п-1 = т (см. табл. 2).

Это соответствие взаимно однозначно, Так как изменяемая часть одинакова для соответствующих элементов множества Д т-г

и Г т-г, а неизменяемая часть элементов Д т-г не позволяет двум таким множествам иметь общие элементы, если они имеют разные индексы. Таким образом, установлено взаимно-однозначное соответствие между элементами множеств Г = {/1,72,... ,7п} и

Д = {81,82,к 8п}.

Следствие 3 (правило нумерации элементов множества Д).

Если 8еДт, то 8п = 0 и номер элемента

к = Ст + Ст-1 + к + С1 +1,

п1 п2 п: '

где ,, = 1,к,т все те индексы, для которых 8п, =1.

Если 8 е Дт-1, то 8п = 1, 81 = 0, и номер элемента

к = Ст + Ст-1 + к + С2 +1,

п п2 пт-1 '

где п,, = 1,к, т -1 все те индексы, для которых п i <п и 8п = 1.

Если 8 е Дт-г , то 8п= I 8 = 1,

, = 1, к, г -1, 8Г = 0, и номер элемента

к = Ст + Ст-1 + к + С"

+1,

п пг

где индексы п{,, = 1,к,т - г , такие что

г < п. < п и 8 = 1.

1 п,

В частности, если 8 е Дт (г = т -1),

то 8п = I 8 = I 1 = Iт-2, 8т-1 = 0, и номер элемента

к = С" +1.

п1

Табл. 1

1 г - 1 г г + 1 ... п - 1 п

8еД т-г 1 1 0 совпадение 1

7е Г / т-г 0 0 0 совпадение 0

Табл. 2

1 ... п - 1 п

8еД" совпадение 0

7еГ" совпадение 0

Коточигов А.М.

Биномиальное разложение числа к определяется набором чисел „3. Элементы множества Г строятся по набору „3 по простому правилу: единица на местах, номера которых попали в набор, на остальных позициях нули. Элементы выборки 83 получены из соответствующих элементов 73 добавлением некоторого количества единиц, выделенных в таблице жирным шрифтом. Правила добавления единиц сформулированы в следствии 3. Курсивом выделены позиции

Табл. 3

к п 7 8

1

2 4 (0,0,0,1,0,0,0) (1,1 ,0,1,0,0, 1)

3 4,3 (0,0,1,1,0,0,0) (1 ,0,1,1,0,0, 1)

4 4,3,2 (0,1,1,1,0,0,0) (0,1,1,1,0,0, 1)

5 4,3,2,1 (1,1,1,1,0,0,0) (1,1,1,1,0,0,0)

6 5 (0,0,0,0,1,0,0) (1,1, 0,0,1,0, 1)

7 5,3 (0,0,1,0,1,0,0) (1 ,0,1,0,1,0, 1)

8 5,3,2 (0,1,1,0,1,0,0) (0,1,1,0,1,0, 1)

9 5,3,2,1 (1,1,1,0,1,0,0) (1,1,1,0,1,0,0)

10 5,4 (0,0,0,1,1,0,0) (1 ,0,0,1,1,0, 1)

11 5,4,2 (0,1,0,1,1,0,0) (0,1,0,1,1,0, 1)

12 5,4,2,1 (1,1,0,1,1,0,0) (1,1,0,1,1,0,0)

13 5,4,3 (0,0,1,1,1,0,0) (0,0,1,1,1,0, 1)

14 5,4,3,1 (1,0,1,1,1,0,0) (1,0,1,1,1,0,0)

15 5,4,3,2 (0,1,1,1,1,0,0) (0,1,1,1,1,0,0)

16 6 (0,0,0,0,0,1,0) (1,1, 0,0,0,1, 1)

17 6,3 (0,0,1,0,0,1,0) (1 ,0,1,0,0,1, 1)

18 6,3,2 (0,1,1,0,0,1,0) (0,1,1,0,0,1, 1)

19 6,3,2,1 (1,1,1,0,0,1,0) (1,1,1,0,0,1,0)

20 6,4 (0,0,0,1,0,1,0) (1 ,0,0,1,0,1, 1)

21 6,4,2 (0,1,0,1,0,1,0) (0,1,0,1,0,1, 1)

22 6,4,2,1 (1,1,0,1,0,1,0) (1,1,0,1,0,1,0)

23 6,4,3 (0,0,1,1,0,1,0) (0,0,1,1,0,1, 1)

24 6,4,3,1 (1,0,1,1,0,1,0) (1,0,1,1,0,1,0)

25 6,4,3,2 (0,1,1,1,0,1,0) (0,1,1,1,0,1,0)

26 6,5 (0,0,0,0,1,1,0) (1 ,0,0,0,1,1, 1)

27 6,5,2 (0,1,0,0,1,1,0) (0,1,0,0,1,1, 1)

28 6,5,2,1 (1,1,0,0,1,1,0) (1,1,0,0,1,1,0)

29 6,5,3 (0,0,1,0,1,1,0) (0,0,1,0,1,1, 1)

30 6,5,3,1 (1,0,1,0,1,1,0) (1,0,1,0,1,1,0)

31 6,5,3,2 (0,1,1,0,1,1,0) (0,1,1,0,1,1,0)

32 6,5,4 (0,0,0,1,1,1,0) (0,0,0,1,1,1, 1)

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

33 6,5,4,1 (1,0,0,1,1,1,0) (1,0,0,1,1,1,0)

34 6,5,4,2 (0,1,0,1,1,1,0) (0,1,0,1,1,1,0)

35 6,5,4,3 (0,0,1,1,1,1,0) (0,0,1,1,1,1,0)

Так как 81 +... + 8„ = т, то среди индексов 5, т-1< 5 < п есть только один, для которого 85 = 1, „ = 5.

Пример (реализации алгоритма).

Таблица 3 иллюстрирует формирование нумерации для выборки 4-х элементов из 7. п = 7, т = 4, С74 =35.

Элементы выборки перечислены в столбце 83, номера элементов находятся в столбце к.

элементов 8], совпадающих с соответствующими элементами 7] .

Отметим простую связь маркировки элементов 8. и множеств Дт-г (разбиения мно-

жества Д). Курсив отмечает элементы множества Д4, одна жирная единица - Д3, две жирных единицы - Д2, три жирных единицы - Д1.

Литература

1. Ландо С.К. Лекции о производящих функциях. М., 2004.

Abstract

The notes contain description of natural renumbering algorithm for units of sample of m elements from n. Algorithm based on presentation of natural numbers as sum of binomial coefficients.

Keywords: sample of m elements from n, binomial coefficients, binomial decomposition.

Коточигов Александр Михайлович, доктор физико-математических наук, профессор СПбГЭТУ, amkotochigov@gmail.com

© Наши авторы, 2012. Our authors, 2012.

i Надоели баннеры? Вы всегда можете отключить рекламу.