주어진 숫자가 무한 급수(등차수열)에 포함되어 있는지 확인해야 하는 경우가 종종 있습니다. 예를 들어 초항이 $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는 이 수열에 포함되지 않기 때문에 '해당 숫자는 무한 급수에 포함되어 있지 않습니다'라는 메시지가 출력됩니다.