-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Мультиплатформенная библиотека Kotlin, добавляющая математические операции с матрицами, векторами, комбинаторикой и многим другим.
Чтобы подключить библиотеку нужно добавить строчки ниже в файл build.gradle.kts
вашего мультиплатформенного модуля
dependencies {
implementation("io.github.plumsoftware:more-math:<version>")
}
Эта библиотека предоставляет функциональность для работы с вектором на плоскости, матрицей, комбинаторикой.
Вычисление факториала
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)