PHP Challenges: Check whether a sequence of numbers is a geometric progression or not
Write a PHP program to check whether a sequence of numbers is a geometric progression or not.
Input : array(2, 6, 18, 54)
In mathematics, a geometric progression or geometric sequence, is a sequence of numbers where each term after the first is found by multiplying the previous one by a fixed, non-zero number called the common ratio. For example, the sequence 2, 6, 18, 54, ... is a geometric progression with common ratio 3. Similarly, 10, 5, 2.5, 1.25, ... is a geometric sequence with common ratio 1/2.
Explanation :
Sample Solution :
PHP Code :
<?php
// Function to check if an array forms a geometric sequence
function is_geometric($arr)
{
// If the array has 1 or fewer elements, it's automatically considered a geometric sequence
if (sizeof($arr) <= 1)
return True;
// Calculate the ratio between the second and first elements of the array
$ratio = $arr[1] / $arr[0];
// Check the ratio of the remaining elements
for ($i = 1; $i < sizeof($arr); $i++)
{
// If the ratio of any pair of consecutive elements is not equal to the initial ratio, return "Not a geometric sequence"
if (($arr[$i] / ($arr[$i - 1])) != $ratio)
{
return "Not a geometric sequence";
}
}
// If all ratios are equal, return "Geometric sequence"
return "Geometric sequence";
}
// Define two arrays
$my_arr1 = array(2, 6, 18, 54);
$my_arr2 = array(10, 5, 2.5, 1.20);
// Test the is_geometric function with the defined arrays and print the results
print_r(is_geometric($my_arr1) . "\n");
print_r(is_geometric($my_arr2) . "\n");
?>
Explanation:
Here is a brief explanation of the above PHP code:
- Function definition:
- The code defines a function named "is_geometric()" which checks if an array forms a geometric sequence. It takes an array '$arr' as input.
- Inside the function:
- It first checks if the size of the array is 1 or less. If so, it returns 'True' as any sequence with 1 or fewer elements is considered geometric.
- It calculates the ratio between the second and first elements of the array.
- It iterates through the array elements starting from the second element.
- Within each iteration, it checks if the ratio of the current element to the previous element is equal to the initial ratio calculated.
- If any ratio is not equal to the initial ratio, it returns "Not a geometric sequence".
- If all ratios are equal, it returns "Geometric sequence".
- Function Call & Testing:
- Two arrays '$my_arr1' and '$my_arr2' are defined with different sets of numbers.
- The "is_geometric()" function is called twice with these arrays as input.
- Finally the results of the function calls are printed using "print_r()", which displays whether each input array forms a geometric sequence.
Sample Output:
Geometric sequence Not a geometric sequence
Flowchart:

Go to:
PREV : Write a PHP program to check whether a sequence of numbers is an arithmetic progression or not.
NEXT : Write a PHP program to compute the sum of the two reversed numbers and display the sum in reversed form.
PHP Code Editor:
Contribute your code and comments through Disqus.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.