diff --git a/math/array.md b/math/array.md index f2872701..4b6cc7ae 100644 --- a/math/array.md +++ b/math/array.md @@ -100,6 +100,7 @@ func process(in1, in2 []int) Result $$ F(\text{in1}, \text{in2}; \text{out1}, \text{out2}) $$ + *Подразумевается, что `in1`, `in2` — аргументы, `out1`, `out2` — результаты.* --- @@ -110,6 +111,7 @@ $$ $$ R(\text{in1}, \text{in2}; \text{out1}, \text{out2}) $$ + где $R$ — отношение, связывающее входы с выходами. Если это отношение функционально по входам, то оно фактически задаёт функцию. --- @@ -120,9 +122,11 @@ $$ $$ F: A_1 \times A_2 \;\longrightarrow\; B_1 \times B_2 $$ + $$ F(\text{in1}, \text{in2}) = (\text{out1}, \text{out2}) $$ + *Точка с запятой может быть добавлена в словесном описании: «где in1, in2 — входные массивы; out1, out2 — выходные».* --- @@ -133,7 +137,9 @@ $$ $$ \text{fun}(\text{in1}, \text{in2} \;;\; \text{out1}, \text{out2}) $$ + или + $$ \text{fun}(\text{in1}, \text{in2}; \text{out1}, \text{out2}) $$ @@ -154,7 +160,9 @@ $$ Для гарантированного отображения используйте только `$` и `$$`. Например: ```markdown + $$ \text{fun}(\text{in1}, \text{in2}; \text{out1}, \text{out2}) $$ + ``` Это будет выглядеть как одна формула, а точка с запятой будет просто символом разделения. Если нужна более строгая математическая форма, выберите вариант с отношением или со стрелкой. @@ -178,15 +186,19 @@ $$ \text{fun}(\text{in1}, \text{in2}; \text{out1}, \text{out2}) $$ В предыдущем ответе я привёл два похожих варианта: 1. **Неформальная функция с разделителем** + $$ \text{fun}(\text{in1}, \text{in2}; \text{out1}, \text{out2}) $$ + Это просто **обозначение**, принятое в некоторых инженерных или алгоритмических текстах: точка с запятой визуально отделяет входные переменные от выходных. Математически такая запись не является стандартной сигнатурой функции — это скорее мнемоническое соглашение. 2. **Отношение** + $$ R(\text{in1}, \text{in2}; \text{out1}, \text{out2}) $$ + Здесь $R$ — это **бинарное отношение** между кортежами входов и кортежами выходов. Если для каждого набора входов существует **ровно один** набор выходов, то такое отношение эквивалентно функции. Однако в математике отношение — более общее понятие (может допускать несколько выходов для одних входов). Запись с точкой с запятой в данном случае показывает, что переменные слева — это аргументы, справа — значения. **Главное отличие**: @@ -207,9 +219,11 @@ $$ \text{fun}(\text{in1}, \text{in2}; \text{out1}, \text{out2}) $$ $$ F: A_1 \times A_2 \;\longrightarrow\; B_1 \times B_2 $$ + $$ F(\text{in1}, \text{in2}) = \bigl( f_1(\text{in1}),\; f_2(\text{in2}) \bigr) $$ + где $f_1: A_1 \to B_1$, $f_2: A_2 \to B_2$. Это самый математически строгий вариант. Он чётко показывает, что первый выход зависит только от первого входа, а второй — только от второго. @@ -220,6 +234,7 @@ $$ $$ F(\text{in1}, \text{in2}) = (\text{out1}, \text{out2}) $$ + с дополнительным условием: *«Здесь out1 — результат, ассоциированный с in1; out2 — результат, ассоциированный с in2»*. @@ -227,10 +242,12 @@ $$ ### Способ В: Использование кортежей и проекций Можно определить функцию через проекции: + $$ \text{out1} = \pi_1\bigl( F(\text{in1}, \text{in2}) \bigr), \quad \text{out2} = \pi_2\bigl( F(\text{in1}, \text{in2}) \bigr) $$ + где $\pi_i$ — проекция на $i$-ю компоненту. Это показывает, что выходы упорядочены. --- @@ -244,6 +261,7 @@ $$ $$ \text{process}: \mathbb{R}^n \times \Sigma^* \;\longrightarrow\; \mathbb{R}^n \times \Sigma^* $$ + $$ \text{process}(X, S) = \bigl( \text{sort}(X),\; \text{toUpper}(S) \bigr) $$ @@ -289,17 +307,21 @@ $$ На GitHub используйте дисплейные формулы для наглядности: ```markdown + $$ F(\text{in1}, \text{in2}) = \bigl( \text{out1}(\text{in1}, \text{in2}),\; \text{out2}(\text{in1}, \text{in2}) \bigr) $$ + ``` Или если требуется именно запись с точкой с запятой: ```markdown + $$ \text{fun}(\text{in1}, \text{in2}; \text{out1}, \text{out2}) $$ + *где out1 — результат, соответствующий in1, out2 — результат, соответствующий in2.* ```