首頁  >  文章  >  後端開發  >  PHP演算法練習七:實作等比數列的判斷方法

PHP演算法練習七:實作等比數列的判斷方法

藏色散人
藏色散人原創
2021-08-10 10:45:523756瀏覽

在《PHP演算法練習六:判斷一個值是否在數組中連續出現三次》中,給大家介紹了怎麼判斷一個值在數組中是不是連續出現三次,這種思路也是值得大家學習的,有興趣的朋友可以了解一下~

今天本文的主題是如何透過PHP來判斷一組資料是不是等比數列?對於PHP小白來說可能略有難度,但相信大家閱讀完本文,就對此類問題,瞭如指掌了。

首先大家要知道什麼是等比數列:

等比數列是指從第二項起,每一項與它的前一項的比值等於同一個常數的一種數列,常用G、P表示。這個常數叫做等比數列的公比,公比通常用字母q表示(q≠0),等比數列a1≠ 0。其中{an}中的每一項均為0。註:q=1 時,an為常數列。

例如數列:2、4、8、16、·····

每一項與前一項的比值:4÷2=8÷4=16÷8 =2,所以這個數列是等比數列,而它的公比就是2。

等比數列通項公式、求和公式如下:

PHP演算法練習七:實作等比數列的判斷方法

#在簡單了解什麼是等比數列後,我們就要進入主題了。

下面是我給的實作等比數列的判斷方法:

<?php
function is_geometric($arr)
{
    if (sizeof($arr) <= 1)
        return True;
    # 计算比率
    $ratio = $arr[1]/$arr[0];

    # 检查剩余的比例
    for($i=1; $i<sizeof($arr); $i++)
    {
        if (($arr[$i]/($arr[$i-1])) != $ratio)
        {
            return "不是等比数列";
        }
    }
    return "是等比数列";
}
$my_arr1 = array(2, 6, 18, 54);
$my_arr2 = array(10, 5, 2.5, 1.20);

print_r(is_geometric($my_arr1)."<br>");
print_r(is_geometric($my_arr2));

判斷結果是:

是等比数列
不是等比数列

在上述程式碼中,我給了兩個判斷數組,分別是$my_arr1 = array(2, 6, 18, 54);$my_arr2 = array(10, 5, 2.5, 1.20);

明顯$my_arr1是等比數列,其公比為3。而$my_arr2則不是等比數列。

最後推薦給大家最新、最全面的《PHP影片教學》~快來學習吧!

以上是PHP演算法練習七:實作等比數列的判斷方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn