Обсуждение:Дискретная математика и алгоритмы

Материал из Викиконспекты
Версия от 00:58, 8 октября 2017; 5.18.215.180 (обсуждение) (Символ Похгаммера: Новая тема)
Перейти к: навигация, поиск

Требования к написанию вики-конспектов

Главное

  1. Внимательно читайте свои конспекты перед тем, как совершать попытку их сдачи. Еще лучше читать конспекты друг друга перед отправкой на проверку, так как это позволит значительно уменьшить количество итераций сдачи конспекта.
  2. Перед отправкой на проверку перечитайте эти требования.
  3. В конспекте не должно быть недочетов, связанных с требованиями.
  4. Не забудьте после того как конспект примут, или когда он будет в состоянии, близком к готовому, добавить его в список конспектов по соответствующей теме, иначе он потеряется, и его никто никогда не прочитает.

Общение с редакторами

  1. Желательно зарегистрироваться на сайте вики-конспектов и написать в информации о себе имя, фамилию и группу.
  2. Не забывайте сообщать редакторам о том, что конспект нужно проверить.
  3. При общении с редактором, представляйтесь и давайте ссылку на конспект, который вы пишете (в каждой итерации общения, чтобы не приходилось искать в истории переписки ссылку). При использовании электронной почты в теме письма указывайте “Вики-конспекты: Название вики-конспекта”. Отсутствие словосочетания "Вики-конспекты" может сказаться на времени проверки конспекта.
  4. Ставить замечания к конспекту может не только ваш куратор конспекта, в том числе и после принятия конспекта. Их тоже надо учитывать.
  5. Не помечайте замечания, эти метки — для кураторов конспектов.

Викификация

  1. Смотрите в качестве примера на конспекты, которые отмечены как хорошие.
  2. В конспекте не должно быть орфографических, пунктуационных, речевых, фактических, логических и других ошибок. Используйте spell checker.
  3. Используйте вики-шаблоны Шаблон: Определение, Шаблон: Теорема, Шаблон: Лемма, Шаблон: Утверждение, Шаблон: Задача (Справка по шаблонам).
  4. Если ваш конспект написан про какое-то конкретное понятие или теорему, не надо делать отдельный пункт "Формулировка":
плохо
хорошо
  1. Приводите английские названия терминов, теорем, имен алгоритмов и т.д. Их лучше писать в скобках курсивом после их русских названий.
  2. Вместо черточки “-” используйте тире “—”. Для этого можно использовать Шаблон:---. Про правила использования читать здесь
  3. Редактировать можно не только свои конспекты — используйте “концепцию вики”
  4. Не используйте тег <br> . Для перевода строки в вики надо вставлять пустую строку. Видимо, единственное место, где можно использовать его — внутри шаблонов — там переводы строки почему-то не работают.
  5. Ставьте категорию [[Категория: Дискретная математика и алгоритмы]] и подкатегорию с названием подтемы (например, [[Категория: Динамическое программирование]]). Список подкатегорий тут.
  6. Оформляйте ссылки на источники правильно. Пример хорошего оформления — конспекты Алгоритм Укконена и Правило Лаулера.
  7. Не используйте сокращения.

Картинки

  1. Картинки, где только возможно, надо делать в векторе. Для этого можно пользоваться Microsoft Visio, Inkscape, Graphviz, Metapost и им подобными.

Источники информации

  1. Используйте ссылки на другие конспекты.
  2. В конспекте должны быть указаны источники или литература. Причем указывать ссылки не просто на википедию, а на конкретную статью (как Википедия — Экспоненциальная запись, на английскую — как Wikipedia — Scientific notation). Для книг достаточно указать автора, название, издание и номер страницы.
  3. Нарушения авторского права недопустимы.

TeX

  1. Использование тега <tex> вместо <math> обязательно. Везде.
  2. По согласованию с куратором: если лень постоянно писать <tex> </tex> , можно обернуть всю статью в <wikitex> </wikitex> , а потом обособлять формулы в $ $(например, <wikitex> Для любого $ \alpha $ верно $\sin^2 \alpha + \cos^2 \alpha = 1 $ </wikitex> ), но лучше так не делать. В частности, проблемы возникают если внутри тега wikitex находится несколько заголовков — ломается их редактирование по отдельности.
  3. Формулы с дробями можно увеличивать для повышения читаемости, если кажется, что они рендерятся слишком мелко, но не надо злоупотреблять. Для этого используйте параметр dpi в теге tex. Пример: <tex dpi = "180">\frac {\omega_n(x)} {(x - x_j) \cdot \omega_n'(x_j)}</tex>
  4. В качестве знака умножения нужно использовать \times или \cdot, а не звездочку. Сравните: [math]2 * 2 = 2 \times 2 = 2 \cdot 2 = 4[/math].
  5. Не опускайте знаки умножения, конъюнкции, скобки и т.п., если это может привести к неоднозначности.

Псевдокод

(правила, в основном, отсюда Участник: Kirelagin/Оформление#Псевдокод)

  1. Используйте максимально компактный и читаемый псевдокод.
  2. Не ставьте фигурные скобки. Угадайте, для чего они нужны? Чтобы парсер языка было легче писать. Человеку они только мешают. Используйте отступы для группировки. (Python-style)
  3. Не ставьте круглые скобки вокруг внешнего условия if'а, while'а и т.п.
  4. Обозначайте присвоение нормально, с помощью знака «=», а сравнение как «==» (всё равно придётся слезать с паскаля).
  5. Не вводите какие-то левые операторы. Например, если кладёте что-то в очередь, так и напишите: q.push(a).
  6. TeX в псевдокоде можно использовать только в случае какого-то нестандартного оператора(а перед этим хорошо подумать и посмотреть предыдущий пункт)
  7. Не надо описывать ввод данных и вывод данных. Оформляйте псевдокод как функцию, принимающую входные данные и возвращающую результат.
  8. Обычные правила хорошего кода:
    • Ставим пробелы между операндами и бинарными операторами(«1 + 2», а не «1+2»). После унарных операторов перед операндом пробел ставить не нужно.
    • Не ставим пробел перед скобкой - вызовом функции(«f(x)», а не «f (x)»)
    • Пробел после запятой, разделяющей аргументы функции
    • Используем какой-то определённый стиль именования переменных(я бы рекомендовал lowerCamelCase для переменных и функций и UpperCamelCase для классов)

Символ Похгаммера

В математике убывающим факториалом (falling factorial) (иногда называется нисходящим факториалом, постепенно убывающим факториалом или нижним факториалом (descending factorial, falling sequential product или lower factorial)) обозначают:

[math](x)_{n}=x^{\underline{n}}=x(x-1)(x-2)\cdots(x-n+1)=\prod_{k=1}^{n}(x-(k-1))=\prod_{k=0}^{n-1}(x-k)[/math]

Растущий факториал (rising factorial) (иногда называется функцией Похгаммера, многочленом Похгаммера, восходящим факториалом, постепенно растущим произведением или верхним факториалом (Pochhammer function, Pochhammer polynomial, ascending factorial, rising sequential product или upper factorial)) определяется следующей формулой:

[math]x^{(n)}=x^{\overline{n}}=x(x+1)(x+2)\cdots(x+n-1)=\prod_{k=1}^{n}(x+(k-1))=\prod_{k=0}^{n-1}(x+k). [/math]

При n=0 значение принимается равным 1 (пустое произведение).

Символ Похгаммера введен Лео Августом Похгаммером в записи [math](x)^n[/math], где [math]n[/math] неотрицательное целое число. В зависимости от контекста символ Похгаммера может обозначать как растущий факториал, так и падающий факториал как определено выше. Поэтому при чтении любой статьи необходимо обратить внимание на то, какой именно из двух факториалов имеется в виду. Сам Похгаммер для себя использовал [math](x)^n[/math] в другом смысле - для обозначения биномиального коэффициента [math]\tbinom xn[/math].

В этой статье [math](x)_n[/math] означает убывающий факториал и [math](x)^n[/math] - растущий факториал. Такое же обозначение используется в комбинаторике.

Когда [math]x[/math] неотрицательное целое число, [math](x)_n[/math] равняется числу инъективных отображений из множества с [math]n[/math] элементами во множество из [math]x[/math] элементов. Для обозначения этого числа часто применяют обозначения [math]_x P_n[/math] и [math]P(x,n)[/math]. Символ Похгаммера в основном используется в алгебре, где [math]x[/math] - переменная, то есть [math](x)_n[/math] есть ни что иное как многочлен степени [math]n[/math] от [math]x[/math].

Примеры

Несколько первых растущих факториалов:

[math]x^{(0)}=x^{\overline0}=1 [/math]
[math]x^{(1)}=x^{\overline1}=x [/math]
[math]x^{(2)}=x^{\overline2}=x(x+1)=x^2+x [/math]
[math]x^{(3)}=x^{\overline3}=x(x+1)(x+2)=x^3+3x^2+2x [/math]
[math]x^{(4)}=x^{\overline4}=x(x+1)(x+2)(x+3)=x^4+6x^3+11x^2+6x [/math]

Несколько первых убывающих факториалов:

[math](x)_{0}=x^{\underline0}=1 [/math]
[math](x)_{1}=x^{\underline1}=x [/math]
[math](x)_{2}=x^{\underline2}=x(x-1)=x^2-x [/math]
[math](x)_{3}=x^{\underline3}=x(x-1)(x-2)=x^3-3x^2+2x [/math]
[math](x)_{4}=x^{\underline4}=x(x-1)(x-2)(x-3)=x^4-6x^3+11x^2-6x [/math]

Коэффициенты в выражениях являются числами Стирлинга первого рода.

Свойства

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

[math]\frac{x^{(n)}}{n!} = {x+n-1 \choose n} \quad\mbox{and}\quad \frac{(x)_n}{n!} = {x \choose n}.[/math]

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

Растущий факториал может быть выражен как падающий факториал, начинающийся с другого конца,

[math]x^{(n)} = {(x + n - 1)}_n ,[/math]

или как убывающий с противоположным аргументом,

[math]x^{(n)} = {(-1)}^n {(-x)}_{{n}} .[/math]

Убывающий и растущий факториалы определены так же и в любом ассоциативном кольце с единицей и, следовательно, [math]x[/math] может быть даже комплексным числом, многочленом с комплексными коэффициентами или любой функцией определенной на комплексных числах.

Растущий факториал может быть продолжен на вещественные значения [math]n[/math], но с использованием Гаммы функции при условии, что [math]x[/math] и [math]x+n[/math] вещественные числа, но не отрицательные целые:

[math]x^{(n)}=\frac{\Gamma(x+n)}{\Gamma(x)},[/math]

то же самое и про убывающий факториал:

[math](x)_n=\frac{\Gamma(x+1)}{\Gamma(x-n+1)}.[/math]

Если [math]D[/math] означает производную по [math]x[/math], то

[math]D^n(x^a) = (a)_n\,\, x^{a-n}.[/math]

Связующие коэффициенты и тождества

The falling and rising factorials are related to one another through the Lah numbers and through sums for integral powers of a variable [math]x[/math] involving the Stirling numbers of the second kind in the following forms where [math]\binom{r}{k} = r^{\underline{k}} / k![/math]:[1]

[math] \begin{align} x^{\underline{n}} & = \sum_{k=1}^n \binom{n-1}{k-1} \frac{n!}{k!} \times (x)_k \\ & = (-1)^n (-x)_n = (x-n+1)_n = \frac{1}{(x+1)^{\overline{-n}}} \\ (x)_n & = \sum_{k=0}^{n} \binom{n}{k} (n-1)^{\underline{n-k}} \times x^{\underline{k}} \\ & = (-1)^n (-x)^{\underline{n}} = (x+n-1)^{\underline{n}} = \frac{1}{(x-1)^{\underline{-n}}} \\ & = \binom{-x}{n} (-1)^n n! \\ & = \binom{x+n-1}{n} n! \\ x^n & = \sum_{k=0}^{n} \left\{\begin{matrix} n \\ n-k \end{matrix} \right\} x^{\underline{n-k}} \\ & = \sum_{k=0}^{n} \left\{\begin{matrix} n \\ k \end{matrix} \right\}(-1)^{n-k} (x)_k. \end{align} [/math]

Since the falling factorials are a basis for the polynomial ring, we can re-express the product of two of them as a linear combination of falling factorials:

[math](x)_m (x)_n = \sum_{k=0}^m {m \choose k} {n \choose k} k!\, (x)_{m+n-k}.[/math]

The coefficients of the (x)m+nk, called connection coefficients, have a combinatorial interpretation as the number of ways to identify (or glue together) Шаблон:Math elements each from a set of size Шаблон:Math and a set of size Шаблон:Math. We also have a connection formula for the ratio of two Pochhammer symbols given by

[math]\frac{(x)_n}{(x)_i} = (x+i)_{n-i},\ n \geq i. [/math]

Additionally, we can expand generalized exponent laws and negative rising and falling powers through the following identities:

[math]x^{\underline{m+n}} & = x^{\underline{m}} (x-m)^{\underline{n}}[/math]
[math](x)_{m+n} & = (x)_m (x+m)_n[/math]
[math](x)_{-n} & = \frac{1}{(x-n)_n} = \frac{1}{(x-1)^{\underline{n}}}[/math]
[math]x^{\underline{-n}} & = \frac{1}{(x+1)_n} = \frac{1}{n! \binom{x+n}{n}} = \frac{1}{(x+1)(x+2) \cdots (x+n)}[/math]

Finally, duplication and multiplication formulas for the rising factorials provide the next relations:

[math](x)_{k+mn} = (x)_k m^{mn} \prod_{j=0}^{m-1} \left(\frac{x+j+k}{m}\right)_n,\ m \in \mathbb{N} [/math]
[math](ax+b)_n = x^n \prod_{k=0}^{x-1} \left(a+\frac{b+k}{x}\right)_{n/x},\ x \in \mathbb{Z}^{+} [/math]
[math](2x)_{2n} = 2^{2n} (x)_n \left(x+\frac{1}{2}\right)_n. [/math]

Альтернативные формы записи

An alternate notation for the rising factorial

[math]x^{\overline{m}}=\overbrace{x(x+1)\ldots(x+m-1)}^{m~\mathrm{factors}}\qquad\mbox{for integer }m\ge0,[/math]

and for the falling factorial

[math]x^{\underline{m}}=\overbrace{x(x-1)\ldots(x-m+1)}^{m~\mathrm{factors}}\qquad\mbox{for integer }m\ge0;[/math]

goes back to A. Capelli (1893) and L. Toscano (1939), respectively.[2] Graham, Knuth and Patashnik[3] propose to pronounce these expressions as "[math]x[/math] to the [math]m[/math] rising" and "[math]x[/math] to the [math]m[/math] falling", respectively.

Other notations for the falling factorial include [math]P(x,n)[/math], [math]^x P_n[/math], ,[math]P_{x,n}[/math] или [math]_x P_n[/math].

An alternate notation for the rising factorial [math]x^(n)[/math] is the less common [math](x)^+_n[/math]. When the notation [math](x)^+_n[/math] is used for the rising factorial, the notation [math](x)^-_n[/math] is typically used for the ordinary falling factorial to avoid confusion.

Обобщения

The Pochhammer symbol has a generalized version called the generalized Pochhammer symbol, used in multivariate analysis. There is also a q-analogue, the q-Pochhammer symbol.

A generalization of the falling factorial in which a function is evaluated on a descending arithmetic sequence of integers and the values are multiplied is:

[math][f(x)]^{k/-h}=f(x)\cdot f(x-h)\cdot f(x-2h)\cdots f(x-(k-1)h),[/math]

where Шаблон:Math is the decrement and Шаблон:Math is the number of factors. The corresponding generalization of the rising factorial is

[math][f(x)]^{k/h}=f(x)\cdot f(x+h)\cdot f(x+2h)\cdots f(x+(k-1)h).[/math]

This notation unifies the rising and falling factorials, which are [x]k/1 and [x]k/−1, respectively.

For any fixed arithmetic function [math]f: \mathbb{N} \rightarrow \mathbb{C}[/math] and symbolic parameters [math]x, t[/math], related generalized factorial products of the form

[math](x)_{n,f,t} := \prod_{k=1}^{n-1} \left(x+\frac{f(k)}{t^k}\right)[/math]

may be studied from the point of view of the classes of generalized Stirling numbers of the first kind defined by the following coefficients of the powers of [math]x[/math] in the expansions of [math](x)_{n,f,t}[/math] and then by the next corresponding triangular recurrence relation:

[math] \begin{align} \left[\begin{matrix} n \\ k \end{matrix} \right]_{f,t} & = [x^{k-1}] (x)_{n,f,t} \\ & = f(n-1) t^{1-n} \left[\begin{matrix} n-1 \\ k \end{matrix} \right]_{f,t} + \left[\begin{matrix} n-1 \\ k-1 \end{matrix} \right]_{f,t} + \delta_{n,0} \delta_{k,0}. \end{align} [/math]

These coefficients satisfy a number of analogous properties to those for the Stirling numbers of the first kind as well as recurrence relations and functional equations related to the f-harmonic numbers, [math]F_n^{(r)}(t) := \sum_{k \leq n} t^k / f(k)^r[/math].[4]

Литература

  • Шаблон:Cite web
  • According to Knuth, The Art of Computer Programming, Vol. 1, 3rd ed., p. 50.
  • Ronald L. Graham, Donald E. Knuth and Oren Patashnik in their book Concrete Mathematics (1988), Addison-Wesley, Reading MA. Шаблон:ISBN, pp. 47,48
  • Combinatorial Identities for Generalized Stirling Numbers Expanding f-Factorial Functions and the f-Harmonic Numbers (2016).
  • Источник — «http://neerc.ifmo.ru/wiki/index.php?title=Обсуждение:Дискретная_математика_и_алгоритмы&oldid=61985»