Смекни!
smekni.com

Учебник php (стр. 4 из 26)

Функции GMP. Математика

gmp_fact
Вычисляет факториал.

Синтаксис :
resource gmp_fact(resourse x)

Возвращает факториал числа, заданного в параметре x.

gmp_sqrt
Вычисляет квадратный корень.

Синтаксис :
resource gmp_sqrt(resourse x)

Возвращает квадратный корень числа, заданного в параметре x.

gmp_sqrtrm
Вычисляет квадратный корень с остатком.

Синтаксис :
array gmp_sqrtrm(resourse x)

Данная функция возвращает массив, в котором элемент с индексом [0] - это квадратный корень аргумента, элемент с индексом [1] - разность между аргументом и элементом [0] в квадрате.

gmp_perfect_square
Определяет, является ли число полным квадратом.

Синтаксис :
bool gmp_perfect_square(resourse x)

Функция gmp_perfect_square() возвратит true, если x является квадратом целого числа. В противном случае вернет false.

gmp_pow
Возведение в степень.

Синтаксис :
resource gmp_pow(resourse x, int y)

Эта функция возвращает результат, равный возведения аргумента x в степень y, при условии, что y не отрицательный.

echo gmp_pow(2,3); // Выведет 8echo gmp_pow(0,0); // Выведет 1

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

Синтаксис :
resource gmp_powm(resourse x, resource y, resource mod)

Возвращает остаток от деления (x в степени y) на mod, в случае, если y положетелен.

gmp_prob_prime
Проверка "вероятно" простого числа.

Синтаксис :
int gmp_prob_prime(resourse x [, int reps])

Эта функция возвратит 0, в случае если x сложное число, т.е. имеющее более двух целых делителей. Возвратит 1, если x, возможно, простое число. Если возвращает 2, то тогда x - наверняка простое число.
Аргумент reps определяет качество проверки. Чем большее это число, тем точнее результат. Может принимать занчения от 5 до 10 (по умолчанию).

Эта функция использует алгоритм вероятностного теста Миллера-Рабина.

gmp_gcd
Находит наибольший общий делитель.

Синтаксис :
resource gmp_gcd(resourse x, resource y)

Всегда возвращает положительный результат.

gmp_gcdext
Нахождение наибольшего общего делителя со множителями.

Синтаксис :
array gmp_gcdext(resourse x, resource y)

Функция gmp_gcdext() возвращает массив со значениями g,s,t, такими, что x*s+y*t=g=НОД(x,y), гдн НОД - наибольший общий делитель.

gmp_invert
Производит инверсию по модулю.

Синтаксис :
resource gmp_invert(resourse x, resource y)

Функция возвращает дополнение x до значения, делящегося нацело на y.Вслучае, если результат не может быть найден, возвращает false.

gmp_legendre
Возвращает число Легранжа.


Синтаксис :
int gmp_legendre(resourse x, resource p)

Функция возвращает число Легранжа. p должен быть четным положительным.

gmp_jacobi
Возвращает число Якоби.


Синтаксис :
int gmp_jacobi(resourse x, resource p)

Функция возвращает число Якоби. p должен быть четным положительным.

gmp_random
Производит генерацию случайного числа.

Синтаксис :
resource gmp_random(int limited)

limited задает длину генерируемого числа. В случае, если значение limited отрицательно, генерируется отрицательное число.

gmp_popcount
Получение популяции.

Синтаксис :
int gmp_popcount(resource x)

Функция возвращает числитель популяции.

gmp_hamdist
Вычисление дистанции.

Синтаксис :
int gmp_hamdist(resource x, resource y)

Функция возвращает дистанцию между числами x и y. Аргументы x и y должны быть неотрицательными.

Функции GMP. Бинарные операции

gmp_and
Логическое И (AND).

Синтаксис :
resource gmp_and(resource x, resource y)

gmp_or
Логическое ИЛИ (OR).

Синтаксис :
resource gmp_or(resource x, resource y)

gmp_xor
Логическое исключающее-ИЛИ (XOR).

Синтаксис :
resource gmp_xor(resource x, resource y)

gmp_setbin
Установка бита.

Синтаксис :
resource gmp_setbin(resource &x, int index [, bool set_clear])

Устанавливает бит в позиции index в числе x. Аргумент set_clear указывает, в какое значение устанавливать бит: 0 или 1 (по умолчанию).

gmp_clrbit
Производит сброс бита.

Синтаксис :
resource gmp_clrbit(resource &x, int index)

Устанавливает бит в позиции index в числе x в значение 0.

gmp_scan0
Производит поиск бита 0.

Синтаксис :
0int gmp_scan0(resource x, int start)

Функция gmp_scan0() ищет в числе x бит 0, начиная с позиции start, в сторону увеличения значимости разрядов. Возвращает позицию найденного бита.

gmp_scan1
Производит поиск бита 1.

Синтаксис :
1int gmp_scan1(resource x, int start)

Функция gmp_scan0() ищет в числе x бит 1, начиная с позиции start, в сторону увеличения значимости разрядов. Возвращает позицию найденного бита.

Создание массива

array
Создание и инициализация массива.

Синтаксис :
array array([mixed ...])

Функция возвращает созданный массив. Индексы и значения в массиве разделяются оператором =>. Пары index=>value разделяются запятыми, они определяют индекс и значение.
Индекс может быть как числовым, так и строковым. В ассоциированных массивах индекс всегда ведет себя как строковой. В случае, если индекс не указан, будет подставляться автоинкремент (на 1 больше), начиная с 0. Если при создании массива были указаны два элемента с одинаковыми индексами, то последний элемент заменяет первый.

$arr=array( // Далее мы создадим двумерный массив"fruit" => array("a"=>"orange", "b"=>"banan", "c"=>"apple"),// эта запись эквивалентна записи: $arr["fruit"]["a"]="orange"; и т.д."number" => array(1,2,3,4,5,6),// эта запись эквивалентна записи: $arr["number"][]=1; и т.д."hotel" => array("first", 5=>"second", "third"));$arr=array(1, 1, 1, 1, 2=>5, 19, 3=>20);print_r($arr);// Далее распечатка этого массиваArray( [0] => 1 [1] => 1 [2] => 5 [3] => 20 [4] => 19)$arr=array(1 => "Январь", "Февраль", "Март");print_r($arr);// распечаткаArray([1] => Январь [2] => Февраль [3] => Март)

range
Заполняет список целыми числами.

Синтаксис :
list range(int low, int high)

Функция range() создает список, заполненный целыми числами от low до high включительно. Ее удобно применять, если мы хотим быстро сгенерировать массив для последующего прохождения по нему циклом forech.

$arr=range(4,9);// теперь $arr = array(4, 5, 6, 7, 8, 9);

Сортировка массивов

array_reverse
Расстановка элементов массива в обратном порядке.

Синтаксис :
array array_reverse(array arr);

Функция array_reverse() возвращает массив, элементы которого следуют в обратном порядке относительно массива, переданного в параметре. При этом связи между ключами и значениями, конечно, не теряются. Например, вместо того, чтобы ранжировать массив в обратном порядке при помощи arsort(), мы можем отсортировать его в прямом порядке, а затем перевернуть:

$A=array("a"=>"Zero","b"=>"Weapon","c"=>"Alpha","d"=>"Processor");

asort($A);

$A = array_reverse($A);

shuffle
Перемешивание элементов массива.

Синтаксис:
void shuffle(array arr);

Функция shuffle() "перемешивает" список, переданный ей первым параметром arr, так, чтобы его значения распределялись случайным образом. При этом измениться сам массив и ассоциативные массивы воспринимаются как списки.

$A = array(10,20,30,40,50);shuffle($A);foreach($A as $v) echo "$v ";// Выведет 10,20,30,40,50 в случайном порядке

sort
Сортировка массива по возрастанию.

Синтаксис:
void sort(array arr [, int sort_flags])

Эта функция предназначена для сортировки списков (списки - массивы, ключи которых начинаются с 0 и не имеют пропусков) в порядке возрастания.

$A = array("One", "Two", "Tree", "Four");sort($A);for($i=0; $i<count($A); $i++) echo "$i:$A[$i] ";// выводит "0:Four 1:Two 2:Tree 3:One"

Любой ассоциативный массив Воспринимается этой функцией как список. То есть после упорядочивания последовательность ключей превращается в 0,1,2,..., а значения нужным образом перераспределяются. Как видим, связи между параметрами ключ=>значение не сохраняются, более того - ключи просто пропадают, поэтому сортировать что-либо, отличное от списка, вряд ли целесообразно.

Аргумент sort_flags задает следующие флаги сортировки:

· SORT_REGULAR - сравнивает элементы "как есть"

· SORT_NUMERIC - сравнивает элементы как числа

· SORT_STRING - сравнивает элементы как строки

rsort
Сортировка массива по убыванию.

Синтаксис:

void rsort(array arr [, int sort_flags])

Аналогична функции sort(), только сортирует по убыванию.

asort
Сортировка ассоциативного массива по возрастанию.

Синтаксис :
void asort(array arr [, int sort_flags]);

Функция asort() сортирует массив, указанный в ее параметре, так, чтобы его значения шли в алфавитном (если это строки) или возрастающем (для чисел) порядке. При этом сохраняются связи между ключами и соответствующими им значениями, т.е. некоторые пары ключ=>значение просто "всплывают" наверх, а некоторые - наоборот, "опускаются".

$A=array("a"=>"Zero","b"=>"Weapon","c"=>"Alpha","d"=>"Processor");asort($A);foreach($A as $k=>$v) echo "$k=>$v ";// выводит "c=>Alpha d=>Processor b=>Weapon a=>Zero"// как видим, поменялся только порядок пар ключ=>значение

По умолчанию функция asort() сортирует массив в алфавитном порядке. Значения флагов сортировки sort_flags приведены в описании функции sort().

arsort
Сортировка ассоциативного массива по убыванию.

Синтаксис :
void arsort(array arr [, int sort_flags]);

Эта функция аналогична функции asort(), только она упорядочивает массив не по возрастанию, а по убыванию.

$arr=array("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple");arsort($arr);reset($arr);while(list ($key, $val) = each ($arr)) { echo "$key = $val<BR>l";}// выведет:a = orange<BR>ld = lemon<BR>lb = banana<BR>lc = apple<BR>l

ksort
Сортировка массива по возрастанию ключей.

Синтаксис :
int ksort(array arr [, int sort_flags]);

Функция практически идентична функции asort(), с тем различием, что сортировка осуществляется не по значениям, а по ключам (в порядке возрастания).

$A=array("d"=>"Zero","c"=>"Weapon","b"=>"Alpha","a"=>"Processor");ksort($A);for(Reset($A); list($k,$v)=each($A);) echo "$k=>$v ";// выводит "a=>Processor b=>Alpha c=>Weapon d=>Zero"

Аргумент sort_flags указывавет параметры сортировки.