Pythonで最大のビットごとのANDとビットごとのORを持つサブシーケンスを検索します
n個の要素の配列があるとすると、ビットの合計が最初のサブシーケンスのすべての要素の賢明なAND演算と、2番目のサブシーケンスのすべての要素のビット単位のOR演算が最大になります。
したがって、入力がA ={4、6、7、2}の場合、7のみを選択して最大AND値を取得し、すべてを選択して最大OR値を取得するため、出力は14になります(4 | 6 | 7 | 2)=7.したがって、結果は7 + 7=14になります。
これを解決するには、次の手順に従います-
-
and_max:=arrの最大値
-
or_max:=0
-
0からarrのサイズまでの範囲のiの場合、実行します
-
or_max:=or_max OR arr [i]
-
-
and_max + or_max
を返します
例
理解を深めるために、次の実装を見てみましょう-
def get_max_sum(arr): and_max = max(arr) or_max = 0 for i in range(len(arr)): or_max|= arr[i] return and_max + or_max a = [4,6,7,2] print(get_max_sum(a))
入力
[4,6,7,2]
出力
14
-
Pythonを使用して最大の確率でパスを見つけるプログラム
n個のノード(ノードには0から番号が付けられます)を持つ無向加重グラフがあるとします。このグラフは、エッジリストを使用して入力として与えられ、各エッジeについて、そのエッジ確率[e]を通過する成功の確率があります。開始ノードと終了ノードもあります。最初から最後まで成功の確率が最大のパスを見つけて、成功の確率を返す必要があります。パスが見つからない場合は、0を返します。 したがって、入力が次のような場合 ノード0から2へのパスが2つあるため、出力は0.24になります。1つは確率0.2、もう1つはノード1を経由するパスの確率は0.4 * 0.6 =0.24で、これが最大です。 これを解
-
リスト内の最大要素と最小要素の位置を見つけるPythonプログラム?
Pythonでは、最大要素、最小要素、およびそれらの位置も非常に簡単に見つけることができます。 Pythonはさまざまな組み込み関数を提供します。 min()は配列の最小値を見つけるために使用され、max()は配列の最大値を見つけるために使用されます。 index()は、要素のインデックスを見つけるために使用されます。 アルゴリズム maxminposition(A, n) /* A is a user input list and n is the size of the list.*/ Step 1: use inbuilt function for finding the positi