Руководство пользователя для GNU Awk
12.2 Численные встроенные функции
Приведем полный список встроенных функций, работающих с числами. Необязательные параметры заключены в квадратные скобки ("[" and "]").
int(x)
Выдает ближайшее целое к x, расположенное между x и нулем, округленное в сторону нуля.
Например, int(3) есть3, int(3.9) есть 3, int(-3.9) есть
\Gamma 3, and int(-3) есть то же самое \Gamma 3.
sqrt(x)
Выдает положительный квадратный корень из x. Сообщает об ошибке, если x отрицателен. Так, sqrt(4) есть два.
exp(x)
Выдает экспоненту от x (e ^ x), или сообщение об ошибке, если x выходит за допустимые пределы, которые могут зависеть от представления чисел с плавающей точкой в вашей машине.
log(x)
Выдает натуральный логарифм x, если x положителен; в противном случае сообщает об ошибке.
sin(x)
Выдает синус от х, х в радианах.
cos(x)
Выдает косинус от x, в радианах.
atan2(y, x)
Выдает арктангенс от y / x в радианах.
rand()
Выдает случайное число. Значения rand равномерно распределены между нулем и единицей. Значение никогда не равно ни 0 ни 1. Иногда нужны случайные целые числа. Для этого имеется пользовательская функция для получения случайных неотрицательных целых меньших чем n:
function randint(n) -
return int(n * rand()) ""
Произведение дает случайные числа между 0 и n. Затем они превращаются в целые ( с помощью int) между нулем и n \Gamma 1, включительно. Приведем пример, где подобная функция используется для получения случайных целых между 1 и n. Эта программа печатает новое случайное число для каждой входной записи.
awk ' # Функция roll бросает модельную игральную кость.
function roll(n) - return 1 + int(rand() * n) ""
# Roll 3 бросает шестигранную кость и
# печатает общее число точек. -
printf("%d points"n",
roll(6)+roll(6)+roll(6)) ""'
НИМАНИЕ: В большинстве реализаций awk, включая gawk, rand начинает генерировать числа с того же начального номера при каждом запуске awk. Таким образом, программа будет генерировать те же самые результаты при каждом ее запуске. Числа случайны в пределах одного запуска awk, но повторяются от запуска к запуску. Это удобно при отладке. Но если вы хотите, чтобы программа давала разные результаты при каждом запуске, нужно менять начальный номер в каждом прогоне. Для этого можно использовать srand.
srand([x])
Функция устанавливает начальный номер x для генерируемых случайных целых чисел. Каждое такое значение приводит к своей последовательности случайных чисел.1 Так, если вы во второй раз подставите то же начальное значение, вы опять получите точно ту же последовательность. Если опустить аргумент (вызвав srand()), то для получения начального номера будут использованы текущие дата и время. Это путь для получения чисел, которые на самом деле непредсказуемы. srand возвращает значение начального номера предыдущего запуска awk. Это позволяет следить за начальными номерами для согласования получаемых случайных последовательностей.
Назад | Вперед
Содержание (общее) | Содержание раздела
Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
|