4.3 KiB
array
1
habr
excel
- https://www.excel-vba.ru/chto-umeet-excel/dinamicheskie-massivy-v-excel/ Начнем с того, что динамические массивы будут доступны пользователям следующих версий Excel:
- 365 офис (по подписке)
- офис 2021 (для MAC и для Windows)
js
2
tuples_or_sets
3 AI
array
В функции есть несколько массивов - как входящие данные и несколько массивов - как результат функции. Как записать математически?
Понял, вы хотите, чтобы математическая запись функции с несколькими массивами на входе и выходе была оформлена только с помощью $ (инлайн) и $$ (дисплей) — так формулы гарантированно корректно отображаются на GitHub (через MathJax). Ниже привожу варианты, используя только эти конструкции.
1. Математическая нотация
В математике массивы обычно рассматриваются как элементы множеств
Вариант 1: Декартово произведение (дисплейная формула)
f: A_1 \times A_2 \times \dots \times A_k ;\longrightarrow; B_1 \times B_2 \times \dots \times B_m
Вариант 2: Значение функции — кортеж (дисплейная формула)
f(a_1, a_2, \dots, a_k) = (b_1, b_2, \dots, b_m)
где a_i \in A_i, b_j \in B_j.
Вариант 3: Векторная форма (если все массивы одного типа)
f: A^k \to B^m,\qquad f(\mathbf{a}) = \mathbf{b}
с \mathbf{a} \in A^k, \mathbf{b} \in B^m.
Вариант 4: Теоретико-множественное определение (с использованием \subseteq)
f \subseteq (A_1 \times \dots \times A_k) \times (B_1 \times \dots \times B_m)
и для каждого входа существует ровно один выход.
2. Программирование (кратко, с акцентом на сигнатуры)
На GitHub в блоках кода формулы не нужны, поэтому просто приведу примеры сигнатур.
Python (кортеж):
def process(arr1: list, arr2: list) -> tuple[list, list]:
...
C (выходные параметры):
void process(int* in1, int* in2, int* out1, int* out2);
Go (структура):
type Result struct { Out1 []int; Out2 []int }
func process(in1, in2 []int) Result
Если нужно именно математическое описание для GitHub — используйте приведённые выше формулы с $ и $$, они будут отображаться корректно.
3. Замечания
- В математике часто стремятся объединить несколько выходных массивов в один (например, в виде матрицы, где столбцы — отдельные массивы), чтобы функция возвращала один объект.
- В программировании предпочтение отдаётся ясности: лучше явно указать типы и имена возвращаемых значений (через кортеж, объект или структуру), чем смешивать их в одном массиве.
- Если входные массивы имеют одинаковую структуру, их часто передают как один массив массивов (список списков).