在《PHP算法練習(xí)六:判斷一個(gè)值是否在數(shù)組中連續(xù)出現(xiàn)三次》中,給大家介紹了怎么判斷一個(gè)值在數(shù)組中是不是連續(xù)出現(xiàn)三次,這種思路也是值得大家學(xué)習(xí)的,感興趣的朋友可以了解一下~
今天本文的主題是如何通過(guò)PHP來(lái)判斷一組數(shù)據(jù)是不是等比數(shù)列?對(duì)于PHP小白來(lái)說(shuō)可能略有難度,但是相信大家閱讀完本文,就對(duì)此類問(wèn)題,了如指掌了。
首先大家要知道什么是等比數(shù)列:
等比數(shù)列是指從第二項(xiàng)起,每一項(xiàng)與它的前一項(xiàng)的比值等于同一個(gè)常數(shù)的一種數(shù)列,常用G、P表示。這個(gè)常數(shù)叫做等比數(shù)列的公比,公比通常用字母q表示(q≠0),等比數(shù)列a1≠ 0。其中{an}中的每一項(xiàng)均不為0。注:q=1 時(shí),an為常數(shù)列。
比如數(shù)列:2、4、8、16、······
每一項(xiàng)與前一項(xiàng)的比值:4÷2=8÷4=16÷8=2,所以這個(gè)數(shù)列是等比數(shù)列,而它的公比就是2。
等比數(shù)列通項(xiàng)公式、求和公式如下:
在簡(jiǎn)單了解什么是等比數(shù)列后,我們就要進(jìn)入主題了。
下面是我給出的實(shí)現(xiàn)等比數(shù)列的判斷方法:
<?php function is_geometric($arr) { if (sizeof($arr) <= 1) return True; # 計(jì)算比率 $ratio = $arr[1]/$arr[0]; # 檢查剩余的比例 for($i=1; $i<sizeof($arr); $i++) { if (($arr[$i]/($arr[$i-1])) != $ratio) { return "不是等比數(shù)列"; } } return "是等比數(shù)列"; } $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));
判斷結(jié)果是:
是等比數(shù)列 不是等比數(shù)列
上述代碼中,我給了兩個(gè)判斷數(shù)組,分別是$my_arr1 = array(2, 6, 18, 54);
和$my_arr2 = array(10, 5, 2.5, 1.20);
。
明顯$my_arr1是等比數(shù)列,其公比是3。而$my_arr2則不是等比數(shù)列。
最后給大家推薦最新最全面的《PHP視頻教程》~快來(lái)學(xué)習(xí)吧!