Skip to content
Slava edited this page Oct 31, 2024 · 1 revision

Kotlin Gradle Apache Maven Maven Central Version

More Math logo

More math

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

Подключение

Чтобы подключить библиотеку нужно добавить строчки ниже в файл build.gradle.kts вашего мультиплатформенного модуля

dependencies {
    implementation("io.github.plumsoftware:more-math:<version>")
}

Документация на других языках (Documentation)

Содержание

Эта библиотека предоставляет функциональность для работы с вектором на плоскости, матрицей, комбинаторикой.

Возможности

Факториал

Вычисление факториала

val res = MoreMath.factorial(3)

Тетрация

Вычислить тетрацию

val res = MoreMath.tetraction(2.0, 3)

Другое

Чтобы вычислить наименьшее общее кратное двух чисел

val res = MoreMath.gcd(13, 17)

Вычисление стандартного отклонения ряда чисел

val res = MoreMath.standardDeviation(1.0, 2.0, 3.0)

Среднее значение

val res = MoreMath.average(1, 2, 3)

Матрица

Создать матрицу можно двумя способами

val matrix = matrixOf<Int> (
  listOf(1, 2),
  listOf(3, 4)
)

или

val matrix = Matrix<Int> (
  listOf(1, 2),
  listOf(3, 4)
)

Операторы, доступные для матриц +, -, -, pow(). Также можно использовать equals() и hashCode.

val matrix1 = matrixOf<Int> (
  listOf(1, 2),
  listOf(3, 4)
)
val matrix2 = matrixOf<Int> (
  listOf(5, 6),
  listOf(7, 8)
)
val matrix3 = matrix1.pow(2)

val plus = matrix1 + matrix2
val times = matrix1 * matrix2
val minus = matrix1 - matrix2

Вычислить определитель матрицы

val det = matrix.determinant()

Транспонировать матрицу

val transposedMatrix = matrix.transpose()

Умножить матрицу на число

val res = matrix.times(2)

Граф

Создать неориентированный граф

val undirectedGraph = UndirectedGraph()

undirectedGraph.addVertex("A")
undirectedGraph.addVertex("B")

undirectedGraph.addEdge("A", "B", weight = 2)

Получить все вершины

val vertices = undirectedGraph.vertices

Комплексные числа

Создать комплексное число

val complex: Complex = MoreMath.complex(-4)
println(complex.toString())

В результате будет напечатано 0.0 - 2.0i

Если Вам нужно указать реальную часть числа, то воспользуйтесь

val complex: Complex = MoreMath.complex(3, -4)
println(complex.toString())

В результате будет напечатано 3.0 - 2.0i

С комплексными числами можно выполнять +, -, -, /. Также доступны equals() и hashCode().

Вектор

Вектор на плоскости

Создание вектора аналогично созданию матрицы

val vector2 = vector2Of(1 , 2)

или

val vector2 = Vector2(1 , 2)

С векторами на плоскости доступны следующие операторы +, -, -, /. Также Вы можете использовать equals() и length().

val vector1 = vector2Of(1, 2)
val vector2 = vector2Of(3, 4)

val plus = vector1 + vector2
val minus = vector1 - vector2
val times = vector1 * vector2
val div = vector1 / vector2
val length = vector1.length()

Комбинаторика

Комбинации из 5 элементов по 2 элемента

val res = MoreMath.combinations(5, 2)

Размещения

val res = MoreMath.placements(5, 2)

Биноменальный коэффициент

val res = MoreMath.binomialCoefficient(5, 2)