on March 11, 2012, at 12:38 AM

Il est maintenant difficile de se passer de google une journée et d'ailleurs si vous êtes arrivé ici, c'est peut-être grâce à ce moteur de recherche hégémonique. Mais vous êtes vous demandé d'où vient ce nom ? Une petite consultation de la page relatant l'histoire de cette société nous montre qu'avant d'être google c'était BackRub et que ce n'est qu'ensuite que cela est devenu google en référence à gogol ! Alors évidemment les esprits tordus, dont je suis, ricanent déjà, mais il faut que je nous détrompe ce n'est ni à Nicolas Gogol, ni à l'idiot du web qu'il est fait référence mais à un nombre 10100. Ainsi donc un 1 suivi de 100 zéros, rien que cela pour démontrer la puissance du moteur de recherche !

1 gogol = 10 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000

Le gogol est approximativement égal à la factorielle de 70 (70!) et il faut au minimum 334 bits pour représenter ce nombre. (2333 = 17 498 005 798 264 095 394 980 017 816 940 970 922 825 355 447 145 699 491 406 164 851 279 623 993 595 007 385 788 105 416 184 430 592)

Ce nom est du à Edward Kasner ou plutôt devrais je dire à Milton son neveu. Bien que ce nombre soit très grand on peux bien évidemment faire plus et Kasner ne s'en ait pas privé en proposant le gogolplex = 10gogol (accessoirement le siège social de google est le googleplex). Vers l’infini et au delà, Buzz l'éclair n'a qu'à bien se tenir, le gogolplex ne peut pas être écrit sous la forme d'un 1 suivi de x zéros. En effet, il y a plus de zéro derrière le 1 que d'atomes dans l'univers.

L'informatique n'est pas en reste avec le bogosort, qui est un algorithme de tri qui utilise une méthode de Monte-Carlo façon élégante de dire que l'on introduit de l'aléatoire. La méthode consiste à jeter les éléments à trier en l'air jusqu'à qu'ils retombent de façon ordonnée ... La complexité de cette méthode de tirage aléatoire croît de façon factorielle (n * n!) donc beaucoup plus vite qu'une fonction exponentielle et si l'on trie 69 valeurs, il faut alors un nombre moyen d'essais d'environ un gogol, revoilà notre ami !

 import java.util.Collections;
 import java.util.List;
 import java.util.Iterator;

 public class Bogosort {
    private static <T extends Comparable<? super T>> boolean isSorted(List<T> list) {
        if (list.isEmpty())
            return true;
        Iterator<T> it = list.iterator();
        T last = it.next();
        while (it.hasNext()) {
            T current = it.next();
            if (last.compareTo(current) > 0)
                return false;
            last = current;
        }
        return true;
    }

    public static <T extends Comparable<? super T>> void bogoSort(List<T> list) {
        while (!isSorted(list))
            Collections.shuffle(list);
    }
 }