ホームページ  >  記事  >  バックエンド開発  >  PHPで現在の要素を除いた製品配列を構築する方法(コードは添付されています)

PHPで現在の要素を除いた製品配列を構築する方法(コードは添付されています)

不言
不言転載
2018-09-30 16:02:163092ブラウズ

この記事の内容は、PHP が現在の要素を除いた積配列をどのように構築するか (コード付き) に関するもので、一定の参考値を持っています。必要な友人はそれを参照できます。お役に立てれば幸いです。

積配列の構築
配列 A[0,1,...,n-1] が与えられた場合、配列 B[0,1,...,n-1] を構築してください。このうち、B=A[0]*A[1]*...*A[i-1]*A[i 1]*...*A[n-1] の要素 B[i] です。分割は使用できません。

1. この質問の意味は、配列 B の要素は配列 A のすべての要素の積ですが、現在の要素は除外する必要があるということです。
2. 配列 A は分割されています
3. 左側の配列は A[0]...A[n-1]、右側の配列は A[1]...A[n ]
4. 新しい配列を結合します

$A=array(1,2,3,4);
multiply($A);
function multiply($numbers){
        $len=count($numbers);
        $res=array();
        //1. 组合左边数组
        $left=array();
        $left[0]=1;
        for($i=1;$i<$len;$i++){
                $left[$i]=$left[$i-1]*$numbers[$i-1];
        }   

        //2. 组合右边数组
        $right=array();
        $right[$len-1]=1;
        for($j=$len-2;$j>=0;$j--){
                $right[$j]=$right[$j+1]*$numbers[$j+1];
        }   

        //3. 组合新数组,整好可以实现A[0]*A[i-1]*A[i+1]*A[n-1]排除当前i元素
        for($i=0;$i<$len;$i++){
                $res[$i]=$left[$i]*$right[$i];
        }   
        return $res;
}

以上がPHPで現在の要素を除いた製品配列を構築する方法(コードは添付されています)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。