Oui, est compris entre 1 et n , mais il est plus proche de 1 que n . Qu'est-ce que log ( n ) ? La fonction log est la fonction inverse de l'exponentation. Permettez-moi de commencer par l'exposé et vous devriez avoir une meilleure idée de ce qu'est le logarithme.log(n)1n1nlog(n)
Considérons deux nombres, et 2 100 . 2 100 est 2 multiplié avec lui-même 100 fois. Vous pouvez, avec quelques efforts, compter 100 nombres, mais pouvez-vous compter 2 100 ? Je parie que tu ne peux pas. Pourquoi? 2 100 est un nombre tellement grand qu'il est supérieur au nombre d'atomes de l'univers. Réfléchissez-y un instant. C'est un nombre tellement énorme qu'il vous permet de donner un nom (nombre) à chaque atome. Et le nombre d'atomes dans votre ongle est probablement de l'ordre de milliards. 2 100 devrait suffire à quiconque (jeu de mots voulu :)).100210021002100100210021002100
Maintenant, entre les deux nombres, et 2 100 , 100 est le logarithme de 2 100 (en base 2 ). 100 est comparativement un nombre aussi petit que 2 100 . Tout le monde devrait avoir 100 articles différents chez eux. Mais, 2 100 est assez bon pour l'univers. Pensez à la maison contre l'univers en pensant à log ( n ) et n .10021001002100210021001002100log(n)n
D'où proviennent l'exponentation et les logarithmes? Pourquoi ont-ils tant d'intérêt pour l'informatique? Vous ne le remarquerez peut-être pas, mais l'exposant est partout. Avez-vous payé des intérêts sur votre carte de crédit? Vous venez de payer un univers pour votre maison (pas si mal, mais la courbe convient). J'aime penser que l'exponentation vient de la règle du produit, mais les autres sont les bienvenus pour donner plus d'exemples. Quelle est la règle du produit, vous pouvez demander; Et je vais répondre.
Supposons que vous avez deux villes et B et qu’il existe deux manières de les séparer. Quel est le nombre de chemins entre eux? Deux. C'est trivial. Maintenant, disons qu'il y a une autre ville C et que vous pouvez passer de B à C de trois manières. Combien de chemins y a-t-il entre A et C maintenant? Six, non? Comment as-tu eu ça? Les avez-vous comptés? Ou les avez-vous multiplié? De toute façon, il est facile de voir que les deux manières donnent un résultat similaire. Maintenant, si vous ajoutez une ville D accessible de C de quatre manières, combien y a-t-il de manières entre A et DABCBCACDCAD? Comptez si vous ne me faites pas confiance, mais il est égal à qui est 24 . Maintenant, s’il ya dix villes et deux chemins d’une ville à l’autre, ils sont disposés en ligne droite. Combien de chemins y a-t-il du début à la fin? Multiplie-les si tu ne me fais pas confiance, mais je te dirai qu'il y en a 2 10 , soit 1024 . Voir que 2 10 est un résultat exponentiel de 10 et 10 est le logarithme de 2 10 . 10 est un petit nombre comparé à 1024 .2⋅3⋅42421010242101010210101024
La fonction logarithme est à n ce que n est à 2 n (notez que 2 est la base du logarithme). Si vous multipliez le journal b ( n ) avec lui-même b fois (notez que b est la base du logarithme), vous obtenez n . log ( n ) est si petit, si petit comparé à n , que c'est la taille de votre maison où n est la taille de l'univers.log2(n)nn2n2logb(n)bbnlog(n)nn
Sur une note pratique, les fonctions fonctionnent de manière très similaire aux fonctions constantes. Ils grandissent avec n , mais ils grandissent très lentement. Si vous avez optimisé l'exécution d'un programme en temps logarithmique prenant un jour avant, vous l'exécuterez probablement dans l'ordre des minutes. Vérifiez par vous-même les problèmes sur Project Euler.log(n)n