П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 6189 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 8318 раз(а).

Учебник HTML.
Просмотров 4933 раз(а).

Руководство по PHP5.
Просмотров 2059 раз(а).

Хостинг через призму DNS.
Просмотров 7070 раз(а).

Подборка текстов стандартных документов.
Просмотров 57578 раз(а).

Учебник PHP - Самоучитель
Просмотров 5236 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 11356 раз(а).

Внешние атаки...
Просмотров 7448 раз(а).

Учебник PHP.
Просмотров 4334 раз(а).

SSI в примерах.
Просмотров 1237 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь





Руководство по PHP
Пред. След.

gmp_gcdext

(PHP 4 >= 4.0.4, PHP 5)

gmp_gcdext -- Calculate GCD and multipliers

Description

array gmp_gcdext ( resource a, resource b )

Calculates g, s, and t, such that a*s + b*t = g = gcd(a,b), where gcd is the greatest common divisor. Returns an array with respective elements g, s and t.

This function can be used to solve linear Diophantine equations in two variables. These are equations that allow only integer solutions and have the form: a*x + b*y = c. For more information, go to the "Diophantine Equation" page at MathWorld

Пример 1. Solving a linear Diophantine equation

<?php
// Solve the equation a*s + b*t = g
// where a = 12, b = 21, g = gcd(12, 21) = 3
$a = gmp_init(12);
$b = gmp_init(21);
$g = gmp_gcd($a, $b);
$r = gmp_gcdext($a, $b);

$check_gcd = (gmp_strval($g) == gmp_strval($r['g']));
$eq_res = gmp_add(gmp_mul($a, $r['s']), gmp_mul($b, $r['t']));
$check_res = (gmp_strval($g) == gmp_strval($eq_res));

if (
$check_gcd && $check_res) {
    
$fmt = "Solution: %d*%d + %d*%d = %d\n";
    
printf($fmt, gmp_strval($a), gmp_strval($r['s']), gmp_strval($b),
    
gmp_strval($r['t']), gmp_strval($r['g']));
} else {
    echo
"Error while solving the equation\n";
}
    
// output: Solution: 12*2 + 21*-1 = 3
?>



Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru