Hướng dẫn dùng gcd trong PHP
Show MathaverageTrả về kết quả trung bình cộng của 2 hoặc nhiều số function average(...$items) { $count = count($items); return $count === 0 ? 0 : array_sum($items) / $count; } Ex: average(1, 2, 3); // 2 factorialTrả về giai thừa của một số function factorial($n) { if ($n <= 1) { return 1; } return $n * factorial($n - 1); } Ex: factorial(6); // 720 fibonacciTrả về mảng fibo giá trị lên đến đối số truyền vào function fibonacci($n) { $sequence = [0, 1]; for ($i = 2; $i < $n; $i++) { $sequence[$i] = $sequence[$i-1] + $sequence[$i-2]; } return $sequence; } Ex: fibonacci(6); // [0, 1, 1, 2, 3, 5] gcdTìm ước số chung lớn nhất của 2 or nhiều số function gcd(...$numbers) { if (count($numbers) > 2) { return array_reduce($numbers, 'gcd'); } $r = $numbers[0] % $numbers[1]; return $r === 0 ? abs($numbers[1]) : gcd($numbers[1], $r); } Ex: gcd(8, 36); // 4 gcd(12, 8, 32); // 4 isEvenKiểm tra là số chẵn Có thể bạn quan tâmfunction isEven($number) { return ($number % 2) === 0; } Ex: isEven(4); // true sPrimeKiểm tra có phải là số nguyên tố function isPrime($number) { $boundary = floor(sqrt($number)); for ($i = 2; $i <= $boundary; $i++) { if ($number % $i === 0) { return false; } } return $number >= 2; } Ex: isPrime(3); // true lcmTrả về bội số chung nhỏ nhất của 2 hoặc nhiều số function lcm(...$numbers) { $ans = $numbers[0]; for ($i = 1, $max = count($numbers); $i < $max; $i++) { $ans = (($numbers[$i] * $ans) / gcd($numbers[$i], $ans)); } return $ans; } Ex: lcm(12, 7); // 84 lcm(1, 3, 4, 5); // 60 medianTrả về số trung vị của một mảng function median($numbers) { sort($numbers); $totalNumbers = count($numbers); $mid = floor($totalNumbers / 2); return ($totalNumbers % 2) === 0 ? ($numbers[$mid - 1] + $numbers[$mid]) / 2 : $numbers[$mid]; } Ex: median([1, 3, 3, 6, 7, 8, 9]); // 6 median([1, 2, 3, 6, 7, 9]); // 4.5 MathaverageTrả về kết quả trung bình cộng của 2 hoặc nhiều số function average(...$items) { $count = count($items); return $count === 0 ? 0 : array_sum($items) / $count; } Ex: average(1, 2, 3); // 2 factorialTrả về giai thừa của một số function factorial($n) { if ($n <= 1) { return 1; } return $n * factorial($n - 1); } Ex: factorial(6); // 720 fibonacciTrả về mảng fibo giá trị lên đến đối số truyền vào function fibonacci($n) { $sequence = [0, 1]; for ($i = 2; $i < $n; $i++) { $sequence[$i] = $sequence[$i-1] + $sequence[$i-2]; } return $sequence; } Ex: fibonacci(6); // [0, 1, 1, 2, 3, 5] gcdTìm ước số chung lớn nhất của 2 or nhiều số function gcd(...$numbers) { if (count($numbers) > 2) { return array_reduce($numbers, 'gcd'); } $r = $numbers[0] % $numbers[1]; return $r === 0 ? abs($numbers[1]) : gcd($numbers[1], $r); } Ex: gcd(8, 36); // 4 gcd(12, 8, 32); // 4 isEvenKiểm tra là số chẵn function isEven($number) { return ($number % 2) === 0; } Ex: isEven(4); // true sPrimeKiểm tra có phải là số nguyên tố function isPrime($number) { $boundary = floor(sqrt($number)); for ($i = 2; $i <= $boundary; $i++) { if ($number % $i === 0) { return false; } } return $number >= 2; } Ex: isPrime(3); // true lcmTrả về bội số chung nhỏ nhất của 2 hoặc nhiều số function lcm(...$numbers) { $ans = $numbers[0]; for ($i = 1, $max = count($numbers); $i < $max; $i++) { $ans = (($numbers[$i] * $ans) / gcd($numbers[$i], $ans)); } return $ans; } Ex: lcm(12, 7); // 84 lcm(1, 3, 4, 5); // 60 Trả về số trung vị của một mảng function median($numbers) { sort($numbers); $totalNumbers = count($numbers); $mid = floor($totalNumbers / 2); return ($totalNumbers % 2) === 0 ? ($numbers[$mid - 1] + $numbers[$mid]) / 2 : $numbers[$mid]; } Ex: median([1, 3, 3, 6, 7, 8, 9]); // 6 median([1, 2, 3, 6, 7, 9]); // 4.5 Còn nữa… Source: https://github.com/30-seconds/30-seconds-of-php-code Việt Nam TutorHi, mình là Anthony Nguyễn. Hiện đang là Full Stack Developer. Mong được giao lưu với bạn đọc và nhận được nhiều gạch đá, xi măng, sỏi để xây biệt thự:) |