ホームページ  >  記事  >  バックエンド開発  >  配列要素を指定して、その要素を合計し、特定の間隔内の最大値を取得します。

配列要素を指定して、その要素を合計し、特定の間隔内の最大値を取得します。

WBOY
WBOYオリジナル
2016-09-30 09:37:331154ブラウズ

この質問はPythonで実装されていますが、PHPコードに書き直したいのですが、要素の繰り返しの組み合わせに行き詰まっています。アイデアをください〜

つまり、N 個の要素がある場合、A+B等于100,而求的是满足结果不超过120的最大组合,正好A+C+D は 191 に等しい可能性があります。

リーリー

返信内容:

この質問はPythonで実装されていますが、PHPコードに書き直したいのですが、要素の繰り返しのない組み合わせで困っています。アイデアをください〜

つまり、N 個の要素がある場合、A+B等于100,而求的是满足结果不超过120的最大组合,正好A+C+D は 191 に等しい可能性があります。

リーリー

あなたの質問はアルゴリズムに関するものですよね? リーリー

このように直接網羅的に列挙するのは絶対に適していません。これはバックパックの問題と見なす必要があります

ナップザック問題は、組み合わせ最適化の NP 完全問題です。この問題は、次のように説明できます。アイテムのセットが与えられ、各アイテムには独自の重量と価格があり、制限された合計重量の範囲内で、アイテムの合計価格が最高になるように選択するにはどうすればよいですか。この問題の名前は、特定のバックパックに入れるのに最も適切なアイテムを選択する方法に由来しています。

https://zh.wikipedia.org/wiki...

PHPでitertoolsの機能が必要な場合は、これを読んでください

https://github.com/alts/iter.php

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。