# Математические функции

## Математические функции

abs() | ceil() | customizable\_round\_multiply() | customizable\_round\_division() | exp() | fac() | floor() | int() | int\_to\_string() | is\_float() | is\_int() | log() | max() | md5() | min() | pow() | random() | round() | sha1() | sha256() | sqrt() | sin() | cos() | tan() | asin() | acos() | atan() | atan2()

<details>

<summary>Описание</summary>

**abs(num)** - абсолютное значение (преобразует число в его положительный эквивалент).\
Пример: abs(-256) возвращает 256

**ceil(num)** - округляет число вверх до ближайшего целого.\
Пример: ceil(25.66) возвращает 26

**customizable\_round\_division(a,b,count)** - делит два числа и округляет результат до указанного количества знаков после запятой (count), где a — делимое, а b — делитель.

**customizable\_round\_multiply(a,b,count)** - умножает два числа и округляет результат до указанного количества знаков после запятой (count), где a и b — множители.

**exp(num)** - возведение числа Эйлера&#x20;e в степень параметра.\
Пример: exp(2) возвращает примерно 7.38905609893065

**fac(num)** - факториал числа (принимает один параметр).\
Пример: fac(5) возвращает 120

**floor(num)** - возвращает целую часть числа (округляет вниз).\
Пример: floor(25.66) возвращает 25

**int(num)** - преобразует число с плавающей точкой в целое, отбрасывая дробную часть.\
Пример: int(1.8) возвращает 1

**int\_to\_string(number, delimiter)** - преобразует число в строку с указанным разделителем.&#x20;

**is\_float(txt)** - проверяет, является ли строка числом (включая десятичные дроби).

**is\_int(txt)** - проверяет, является ли строка числом. \
Пример: is\_int("5") возвращает True, а is\_int("text") возвращает False

**log(num, base)** - вычисляет логарифм числа, принимая два параметра: число и основание (по умолчанию —&#x20;e).\
Пример: log(E) возвращает 1 (где E — число Эйлера), log(100, 10) возвращает 2

**max(a, b, c)** - находит максимальное число среди перечисленных значений, принимая неограниченное количество параметров (каждый должен быть числом).\
Пример: max(4, 2, 9, 6) возвращает 9

**md5(text)** - генерирует MD5-хэш из строки.\
Пример: hash = md5("Hello world") возвращает 3e25960a79dbc69b674cd4ec67a72c62

**min(a, b, c)** - находит минимальное число среди перечисленных значений, принимая неограниченное количество параметров (каждый должен быть числом).\
Пример: min(4, 2, 9, 6) возвращает 2

**pow(num, st)** - возводит число в степень, принимая два параметра: основание и показатель степени.\
Пример: pow(5, 2) возвращает 25

**pyt(a, b)** - вычисляет квадратный корень из суммы квадратов двух значений, принимая два параметра: a и b.\
Пример: pyt(5, 2) возвращает 5.385164807134504

**random(low, high)** - генерирует случайное число. Функция принимает два параметра: нижнюю и верхнюю границу.\
Пример: random(-10, 10)

**round(num)** - выполняет математическое округление числа.&#x20;Пример: round(1.8).

Также можно округлять до указанного количества знаков после запятой.\
Пример: round(1.8888888, 2) возвращает 1.89.&#x20;

**sha1(text)** - генерирует SHA-1-хэш из строки.\
Пример: hash = sha1("Hello world") возвращает 7b502c3a1f48c8609ae212cdfb639dee39673f5e

**sha256(text)** - генерирует SHA-256-хэш из строки.\
Пример: hash = sha256("Hello world") возвращает 64ec88ca00b268e5ba1a35678a1b5316d212f4f366b2477232534a8aeca37f3c

**sqrt(num)** - вычисляет квадратный корень числа, принимая один параметр: число.\
Пример: sqrt(25) возвращает 5

**sin() cos() tan() asin() acos() atan() atan2()** - тригонометрические функции (не забывайте учитывать их области определения).

{% hint style="success" %}
Математические функции можно выполнять не только в поле "Калькулятор", но и напрямую в поле "Сообщение", записывая выражения в следующем формате: **#{2+2}, #{random(0,100)}**&#x438; т. д.
{% endhint %}

</details>

<details>

<summary>Пример</summary>

Давайте попробуем эту функцию! Это действительно просто: просто введите её, укажите параметры и получите результат — как в математике!

<div data-with-frame="true"><figure><img src="/files/ca81ab04dc6e001aa3ff8bf03260348665dd62b3" alt=""><figcaption></figcaption></figure></div>

Вот результат:

<div data-with-frame="true"><figure><img src="/files/8f37e42ad68effae3c6d9d33ab00b58e382de9a6" alt="" width="375"><figcaption></figcaption></figure></div>

Пример использования **int\_to\_string()**:

<div data-with-frame="true"><figure><img src="/files/acc1e174004fbafef1687192cbedcd51a1d878b9" alt="" width="375"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/513e84f524d43311f83413760ec3d5a955e7e340" alt="" width="375"><figcaption></figcaption></figure></div>

</details>

<details>

<summary>Пример кода для копирования</summary>

Код для поля "Сообщение":

```
abs(#{A}) = #{a1} 
ceil(#{X}) = #{b1} 
customizable_round_multiply(#{X}, #{Y}, 2) = #{c1}
customizable_round_division(#{X}, #{Y}, 3) = #{d1} 
exp(4) = #{e1}
fac(#{C}) = #{f1}
floor(#{X}) = #{g1}        
floor(#{Y}) = #{floor(#{Y})}
int(#{X}) = #{h1}            
int(#{Y}) = #{int(#{Y})}
is_float("#{text}") = #{i1}      
is_float("#{X}") = #{is_float("#{X}")}    
is_int("#{text}") = #{j1}         
is_int("#{C}") = #{is_int("#{C}")}
is_int("#{X}") = #{is_int("#{X}")}
log(#{C}) = #{k1}
max(#{X}, #{Y}, #{C}) = #{l1} 
md5("#{text}") = #{m1} 
min(#{X}, #{Y}, #{C}) = #{n1}
pow(#{C},#{C}) = #{o1} 
pyt(5,2) = #{o2}
random(0, #{C}) = #{p1} 
round(#{Y}) = #{r1}
sha1("#{text}") = #{s1}
sha256("#{text}") = #{t1}
sqrt(#{C}) = #{u1} 
sin(#{X}) = #{v1}
cos(#{X}) = #{w1}
tan(#{X}) = #{x1} 
asin(#{L}) = #{y1} 
acos(#{L}) = #{a2} 
atan(#{X}) = #{b2} 
atan2(#{X},#{Y}) = #{c2}
```

Код для поля "Калькулятор":

```
/*установка универсальных чисел для вычислений*/
X=1.275
Y=5.822
A=-2.352
C=5
L=0.5
text="Hello, World!"
/*вычисление*/
a1=abs(A) 
b1=ceil(X) 
c1=customizable_round_multiply(X,Y,2) 
d1=customizable_round_division(X,Y,3) 
e1=exp(4) 
f1=fac(C) 
g1=floor(X) 
h1=int(X) 
i1=is_float(text) 
j1=is_int(text) 
k1=log(C) 
l1=max(X,Y,C) 
m1=md5(text) 
n1=min(X,Y,C) 
o1=pow(C,C) 
o2=pyt(5,2)
p1=random(0,C) 
r1=round(Y) 
s1=sha1(text) 
t1=sha256(text) 
u1=sqrt(C) 
v1=sin(X) 
w1=cos(X) 
x1=tan(X) 
y1=asin(L) 
a2=acos(L) 
b2=atan(X) 
c2=atan2(X,Y)
```

</details>

## Работа с координатами

**distance()**

<details>

<summary>Описание</summary>

**distance(lat1, lon1, lat2, lon2)**- вычисляет расстояние между двумя координатами в километрах

**lat1, lat2** - широта начальной и конечной точек

**lon1, lon2** - долгота начальной и конечной точек

</details>

<details>

<summary>Примеры</summary>

Пример: `distance(52.2296756, 21.0122287, 52.406374, 16.9251681)`

Результат: `278.5459739738798`

</details>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mavibot.ai/doc/ru/chatbot/functions/kalkulyator/math.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
