Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP로 주어진 숫자가 무한 급수에 포함되어 있는지 확인하는 프로그램

주어진 숫자가 무한 급수(등차수열)에 포함되어 있는지 확인해야 하는 경우가 종종 있습니다. 예를 들어 초항이 $m이고 공차가 $o인 수열에서 특정 값 $n이 실제로 그 수열의 항인지 판별하는 문제입니다. 이러한 검증은 반복문 없이도 간단한 수학적 조건 몇 가지만으로 효율적으로 처리할 수 있습니다.

아래는 주어진 숫자가 무한 급수에 존재하는지 확인하는 PHP 코드 예제입니다.

예제 코드

<?php
    function contains_val($m, $n, $o){
        if ($m == $n)
            return true;
        if (($n - $m) * $o > 0 && ($n - $m) % $o == 0)
            return true;
        return false;
    }
    $m = 3; $n = 5; $o = 9;
    if (contains_val($m, $n, $o))
        echo '해당 숫자는 무한 급수에 포함되어 있습니다';
    else
        echo '해당 숫자는 무한 급수에 포함되어 있지 않습니다';
?>

실행 결과

해당 숫자는 무한 급수에 포함되어 있지 않습니다

위 코드에서는 먼저 세 개의 변수를 정의한 뒤, 이 값들을 인자로 전달하면서 함수를 호출합니다.

$m = 3; $n = 5; $o = 9;

여기서 정의된 contains_val 함수는 세 개의 매개변수를 받아 다음과 같은 순서로 판별을 수행합니다.

  • 첫 번째 조건: 앞의 두 변수($m$n)가 서로 같다면, 해당 숫자는 이미 수열의 시작점과 일치하므로 true를 반환합니다.
  • 두 번째 조건: 앞의 두 변수의 차이에 세 번째 숫자(공차)를 곱한 값이 0보다 크고, 동시에 두 변수의 차이를 세 번째 숫자로 나눈 나머지가 0이라면 true를 반환합니다. 이는 $n$m에서 출발해 공차 $o의 배수를 더해 도달할 수 있는 값임을 뜻합니다.
  • 그 외의 경우: 어떤 조건도 만족하지 않으면 false를 반환합니다.
function contains_val($m, $n, $o){
    if ($m == $n)
        return true;
    if (($n - $m) * $o > 0 && ($n - $m) % $o == 0)
        return true;
    return false;
}

정리하면, 이 함수는 초항이 $m이고 공차가 $o인 무한 등차수열(m, m+o, m+2o, …) 안에 $n이 존재하는지를 판별합니다. 예제에서는 $m = 3, $o = 9이므로 수열은 3, 12, 21, 30, … 형태가 되고, $n = 5는 이 수열에 포함되지 않기 때문에 '해당 숫자는 무한 급수에 포함되어 있지 않습니다'라는 메시지가 출력됩니다.