在《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 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中文網其他相關文章!