Це сторінка документації для Модуль:Math

Модуль:Math (обг. · [ред.] · історія · посилання · документація · підсторінки · тести – результати)


Цей модуль забезпечує ряд математичних функцій. Ці функції можуть використовуватися з #invoke чи іншими модулями Lua.

Використання з іншим модулем LuaРедагувати

Щоб використовувати цей модуль на звичайних вікісторінках, спеціальні знання не потрібні. Якщо ви використовуєте цей модуль з іншим модулем Lua, то вам спочатку потрібно його завантажити як на прикладі:

local mm = require('Module:Math')

(Змінна mm розшифровується як Module Math; за бажанням ви можете вибрати щось більш описове.)

Більшість функцій модуля є у версії для Lua і у версії для #invoke. Можна використовувати функції #invoke з іншими модулями Lua, але використання функції Lua має перевагу в тому, що вам не потрібно отримувати доступ до Lua frame object. Функціям Lua передує _, тоді як #invoke функцій немає.

randomРедагувати

Див. також: en:Module:Random
{{#invoke:math|random}}
{{#invoke:math|random|max_value}}
{{#invoke:math|random|min_value|max_value}}
mm._random()
mm._random(max_value)
mm._random(min_value, max_value)

Генерує випадкове число.

  • Якщо аргументи не вказані, то згенероване число більше або дорівнює 0 і менше 1.
  • Якщо один з аргументів наданий, генерується ціле число від 1 до заданого аргументу. Аргумент повинен бути цілим додатнім числом.
  • Якщо надані обидва аргументи, генерується ціле число між першим і другим аргументом. Обидва аргументи повинні бути цілими, але можуть бути і від'ємними.

Функція не працюватиме належним чином для чисел менше -2^32 і більше, ніж 2^32 - 1 (може змінюватися в залежності від обладнання). Якщо вам потрібно використовувати цифри за поза цим діапазоном, рекомендується використовувати en:Module:Random.

orderРедагувати

{{#invoke:math|order|n}}
mm._order(n)

Визначає порядок величини числа.

precisionРедагувати

{{#invoke:math|precision|n}}
{{#invoke:math|precision|x=n}}
mm._precision(number_string)

Визначає точність числа. Наприклад, для "4" поверне "0", для "4.567" поверне "3", і для "100" поверне "-2".

Функція намагається проаналізувати строкове подання числа, і виявляє, чи використовує число у експоненціальному записі. З цієї причини коли викликається з Lua, дуже великі або дуже точні цифри, вони повинні відразу надходити як рядки задля отримання точного результату. Якщо вони вводяться як числа, інтерпретатор Lua зміниться їх експоненціальним записом і ця функція поверне точний експоненціальний запис, а не розмір початкового числа. Це не проблема, коли число викликається з #invoke, завдяки участі #invoke все подається в строковому форматі.

maxРедагувати

{{#invoke:math|max|v1|v2|v3|...}}
mm._max(v1, v2, v3, ...)

Повертає максимальне значення із вказаних значень. Значення, які не можуть бути перетворені в числа, ігноруються.

minРедагувати

{{#invoke:math|min|v1|v2|v3|...}}
mm._min(v1, v2, v3, ...)

Повертає мінімальне значення із вказаних значень. Значення, які не можуть бути перетворені в числа, ігноруються.

averageРедагувати

{{#invoke:math|average|v1|v2|v3|...}}
mm._average(v1, v2, v3, ...)

Повертає середнє значення із вказаних. (Точніше, це значення відповідає середньому арифметичному.) Значення, які не можуть бути перетворені в числа, ігноруються.

roundРедагувати

{{#invoke:math|round|value|precision}}
{{#invoke:math|round|value=value|precision=precision}}
mm._round(value, precision)

Округлює число до заданої точності.

modРедагувати

{{#invoke:math|mod|x|y}}
mm._mod(x, y)

Отримує x по модулю y, або залишок після x поділеного на y. Це працює належним чином для цілих чисел до 2^53; для більших чисел оператор за модулем Lua може повертати хибне значення. Дана функція вирішує цю проблему повертаючи 0 якщо по модулю оператору модуля Lua дається значення, яке становить менше 0 або більше y.

gcdРедагувати

{{#invoke:math|gcd|v1|v2|...}}
mm._gcd(v1, v2, ...)

Знаходить найбільший спільний дільник із встановленого значення. Значення, які не можуть бути перетворені в числа, ігноруються.

precision_formatРедагувати

{{#invoke:math|precision_format|value_string|precision}}
mm._precision_format(value_string, precision)

Заокруглення числа із зазначеною точністю і форматом відповідно до правил спочатку використовувалися для {{Rnd}}. Видається рядком.

cleanNumberРедагувати

local number, number_string = mm._cleanNumber(number_string)

Допоміжна функція, яка може бути викликана з інших модулів Lua, але не від #invoke. Вона приймає рядкове або числове значення в якості вхідних даних, і, якщо значення може бути перетворено в число, cleanNumber повертає число і рядок цифр. Якщо значення не може бути перетворено в число, cleanNumber повертає nil, nil.