ホームページ >バックエンド開発 >Python チュートリアル >リスト内の指定された値に最も近い整数を見つけるにはどうすればよいですか?

リスト内の指定された値に最も近い整数を見つけるにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-11 02:45:03926ブラウズ

How to Find the Closest Integer to a Given Value in a List?

リスト内の指定された値から最も近い整数を見つける

指定されたリスト内のターゲット値に最も近い数値を決定するには、次のようないくつかのアプローチが考えられます。

ビルトインの使用min() 関数:

リストが並べ替えられていない場合、min() 関数は最も近い要素を見つける便利な方法を提供します。これにより、ターゲット値からの距離を評価するキー関数を指定できます。

min(myList, key=lambda x:abs(x-myNumber))

このアプローチの時間計算量は O(n) です。n はリストの長さです。

二分法を使用する (並べ替えられたリストの場合):

リストがすでに並べ替えられている場合、または効率的にソートできる場合、二分法は O(log n) の時間計算量でより高速なソリューションを提供します。この手法では、リストを半分に分割し、最も近い要素が見つかるまでターゲット値を中央の要素と比較することを繰り返します。

絶対差の比較:

別のアプローチは次のとおりです。リストを反復処理し、各要素とターゲット値の間の絶対差を計算します。絶対差が最小の要素が最も近いと見なされます。

closest_num = None
min_diff = float('inf')
for num in myList:
    diff = abs(num - myNumber)
    if diff < min_diff:
        closest_num = num
        min_diff = diff

このアプローチの時間計算量も O(n) です。

アプローチの選択は、次のような要因によって異なります。リストのサイズと、すでにソートされているかどうか。小さなリストまたは並べ替えられていないリストの場合、min() 関数が簡単な解決策になる可能性があります。大きなリストや並べ替えられたリストの場合は、二分法を使用すると効率が高くなります。

以上がリスト内の指定された値に最も近い整数を見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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