Comment trouver le numéro dans une liste le plus proche d'une valeur donnée ?

Barbara Streisand
Libérer: 2024-11-11 06:24:02
original
732 Les gens l'ont consulté

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

Trouver le nombre le plus proche dans une liste d'une valeur donnée

Étant donné une liste d'entiers, vous devrez peut-être déterminer quel nombre est le plus proche à une valeur donnée. Cette tâche peut être accomplie efficacement en utilisant les méthodes suivantes :

Liste non triée :

Si la liste d'entrée n'est pas triée, vous pouvez utiliser la fonction intégrée min() avec un argument clé. Cela vous permet de trouver l'élément avec la différence absolue minimale par rapport à la valeur cible.

>>> myList = [4, 1, 88, 44, 3]
>>> myNumber = 5
>>> min(myList, key=lambda x: abs(x - myNumber))
4
Copier après la connexion

Cette méthode prend un temps O(n), car elle parcourt toute la liste.

Liste triée :

Alternativement, si la liste est déjà triée ou si vous souhaitez la trier une fois, vous pouvez utiliser la méthode de bissection. Cette technique utilise la recherche binaire pour localiser le point d'insertion de la valeur cible, trouvant ainsi l'élément le plus proche en un temps O(log n). Voici un exemple d'implémentation utilisant le module bisect de Python :

>>> from bisect import bisect_left
>>> myList = sorted([4, 1, 88, 44, 3])
>>> myNumber = 5
>>> bisect_left(myList, myNumber)
2
>>> myList[2]
4
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal