Que faire de votre chèvre?

Au boulot monsieur Seguin

Il y a quelques années j'étais tombé sur un problème de maths dont l'énoncé consistait à attacher une chèvre dans un champ de telle sorte qu'elle ne puisse manger qu'une partie de l'herbe. Dans mes souvenirs, il me semblait qu'il s'agissait d'un champ carré et que l'on souhaitait que la chèvre ne puisse avoir accès qu'à 50% de la surface du champ. C'est donc cette idée qui sera développée par la suite. Cependant il est à noter que ce problème de chèvre est un grand classique mais l'énoncé contient des variantes où le champ est  rond (et non carré) ou alors celui-ci contient des obstacles (une grange ou un silo) qui bloquent certains accès. 
D'ailleurs, la version du problème avec un champ carré n'est même dans l’énumération (pourtant exhaustive) que vous trouverez en suivant le lien ci-joint : =>Là<=
Bref, revenons à nos moutons (vous avez vu la blague subtile?). Le problème est donc le suivant : Il faut attacher une chèvre dans un champ carré afin que celle-ci ne puisse brouter que la moitié de la surface dudit champ.

Cas 1 : On attache la chèvre dans un coin

Si l'on attache la chèvre dans un coin, la surface à sa disposition sera un quart de cercle dont la surface est égale à :
  
avec r qui est la longueur de la corde. De l'autre côté, nous avons un champ carré dont les cotés sont de longueur c. Il faut donc trouver la valeur de r telle que la surface totale dont la chèvre dispose représente 50% de l'aire totale du champ. Il faut donc résoudre l'équation : 


ce qui donne (même si je suis sur que vous pouvez le faire par vous-même) : 



Cela signifie que si l'on a un champ carré qui mesure 10m par 10m alors il faudra utilser une corde de 7.98 m afin que la chèvre ne puisse brouter que la moitié de la surface du champ.

Cas 2 : On attache la chèvre "pas dans un coin"

Nous avons vu que si la chèvre est dans un coin, le calcul pour trouver la longueur de corde est plutôt simple. Si vous êtes d'un naturel optimiste vous pouvez supposer qu'il en sera de même si l'on attache la chèvre à un point différent de la clôture. Eh bien détrompez-vous, ça devient horrible.



La raison est que la zone accessible à la chèvre n'est plus un simple quart de cercle mais une portion d'un cercle tronqué. C'est peut-être un détail pour vous mais pour moi ça veut dire beaucoup. Ça veut dire qu'on va s’embêter avec des intégrales (France Gall est d'accord avec moi sur ce point).
En effet, l'équation d'un demi-cercle centré en 0 se calcule avec la formule suivante :



Puisque nous désirons trouver l'aire sous cette courbe, on va en calculer la primitive :



On peut donc déduire l'aire d'un cercle allant de -b (l'abscisse la plus à gauche atteignable par la chèvre) à a (l'abscisse la plus à droite) qui sont donc soit les limites du champ soit la longueur de la corde.



Dans le tout premier cas, quand le poteau est dans l'angle gauche du champ, on a a=r et b=0. Ce qui a l'avantage de pouvoir se simplifier en :



On est content car on retrouve bien la valeur de la surface d'un quart de cercle. Ouf. Par contre, autant vous dire que pour n'importe quelle autre valeur, il n'y a pas de simplification. J'avais de l'espoir pour le cas où on plantait le piquet pile au milieu d'un coté. On aurait donc a = -b = c/2 mais même dans ce cas là on obtient :



Ce qui donne :


 
C'est pas si affreux que ça, mais cette équation à la particularité d'être transcendante. Cela signifie que l'on ne peut pas exprimer r uniquement en fonction des autres paramètres car r est aussi fonction de lui-même. Par exemple, l'équation sin(x)=1 n'est pas transcendante mais sin(x)=x oui.

La seule manière d'obtenir le résultat est donc d'utiliser des méthodes de calculs alternatives (dans notre cas, du calcul approché). Grâce à l'informatique il est possible de trouver que la longueur de corde nécessaire lorsque le piquet est au centre d'un des cotés est égale à (environ) 0.583 fois la longueur du coté du champ.

Et puisqu'on en est a faire des calculs informatiques, autant en profiter pour montrer comment varie la longueur de la corde en fonction de l'endroit où l'on met le poteau. La partie de gauche montre en ordonnée la valeur obtenue en fonction de la valeur en x (qui indique la position dans le champ). Le graphique de droite montre en vert clair, la zone accessible à la chèvre et qui dans tous les cas de figure correspond exactement à la moitié de la surface totale du champ.

Conclusion

Nous voilà donc arrivés à la fin. Notre chèvre est bien gardée désormais. Il est à noter que ce calcul peut être facilement adapté à des champs rectangulaires et que tous ces résultats sont applicables à n'importe quel animal (mouton, brebis ....). Je conseillerais cependant d'être prudent dans le cas d'un élevage de girafe, la longueur de leur cou doit être prise en compte dans les calculs sous peine d'avoir de mauvaises surprises.

Découpage des régions

Picasso a eu sa période "bleue", moi j'ai ma période "répartition régionale des populations". C'est comme ça, quand Uranie, la muse des mathématiques vous choisit, c'est le destin d'un homme qui se déroule sous ses yeux.

Bref.


L'idée est donc d'utiliser de nouveau les informations dont nous disposons qui décrivent la position et la population de chaque commune française. Cette fois-ci nous allons voir comment il est possible de découper chaque région en zone contenant le même nombre d'habitants. (L'égalité entre les superficie n'est pas importante)

Le découpage

La manière de découper les régions en zones de même nombre d'habitants doit avoir pour but d'obtenir des zones respectant une certaine logique. Aux États-Unis, la manière de découper les zones s'appelle le gerrymandering et en France on appelle cela le découpage électoral. Normalement chaque zone doit être la moins étalée possible et respecter une certaine représentativité dans sa démographie et dans le respect de la géographie locale. Il existe des algorithmes très complets permettant d'optimiser tous ces critères. A chaque redécoupage il existe une rumeur supposant certains décideurs en profiteraient pour définir des groupements qui les favoriseraient aux élections suivantes. 

De notre coté on fera basique, un découpage géométrique avec comme critère principal de ne pas trop s'étaler quand même. La méthode que nous utiliserons principalement est de tester série de droite affines avec une angle allant de 0 à 180° et de définir des bandes séparant les communes et de finalement prendre le résultat qui minimise un certain critère. Le critère que nous cherchons à minimiser est celui de la distance maximale entre deux communes du même groupe (afin, d'éviter l'étalement). Évidemment, il est possible aussi de définir une multitude de critères à optimiser (la distance moyenne entre les communes du même groupe par exemple) .


Résultats



Nous allons tester notre mini fonction pour les cas à 2, 3, 4 et 5 groupes. Chaque groupe contient donc le même nombre d'habitants et est séparé par une droite dont la pente minimise notre critère de sélection. C'est pourquoi il est possible que d'un cas à un autre, la pente optimale soit différente.













Le découpage en bande semble relativement pertinent mais il est possible de définir des groupements qui assurent une plus grande compacité de chaque zone. L'inconvénient est que ces recherches de solutions sont beaucoup plus gourmandes en temps et plus compliquées à développer et que le résultat ne sera pas aussi symétriquement élégant. En revanche, je n'ai pas résisté à la tentation de tester des formes plus farfelues. Comme les découpages en rond :


en carré :


ou encore en croix:
Il est possible d'imaginer tout et n'importe quoi, la preuve.




Répartition des populations régionales

Je suis récemment tombé sur un tableau indiquant la population de chacune des 13 nouvelles régions de France métropolitaine issues de la réforme des territoires de 2015. Le constat le plus amusant concernait la fusion Auvergne - Rhône-Alpes puisque cela créait la deuxième plus grande région de France en terme de population avec 8 millions d'habitants (évidemment derrière Paris et ses 12 millions d'habitants). L'aspect amusant de la chose résidait surtout dans le fait que même avant la fusion, la région Rhône-Alpes était déjà largement devant le reste du peloton et l'ajout de l'Auvergne (avec seulement 1.3 millions d'habitants) n'a pas d'impact majeur sur le classement final.
Il existe donc un fort déséquilibre dans ce mariage et cela peu donner l'impression aux auvergnats, de n'être qu'une pièce rapportée qui sera délaissée dans les processus de décision.
Pour vérifier cela, j'ai donc essayé d'étudier comment se repartissaient les bassins de population dans les différentes régions françaises en étudiant les différences de densité. L'approche est la suivante : Pour une région donnée, nous allons chercher des zones  contenant x% de la population (pour cette étude j'ai choisi de trouver des zones contenant 25% de la population totale de la région).

Si une zone contenant 25% de la population occupe une surface représentant 25% de la surface totale de la région alors cette zone est "normalement" peuplée. Mais il existe des cas plus extrêmes. Il existe des zones très peu peuplées, par exemple, des zones occupant 50% de la surface totale de la région mais qui n'abritent que 25% de la population. A l'opposé, il existe des zones couvrant 9% de la surface d'une région qui elles aussi regroupent 25% de la population totale.

Méthode

La méthode pour trouver les zones "optimales" de chaque région (c'est à dire la zone la plus grande possible et la zone la plus petite possible contenant chacune 25% de la population) se résume en quelques étapes simples :
1- Extraire les données GEOFLA des communes d'une région donnée, qui contiennent les coordonnées GPS de chaque communes ainsi que les informations concernant leur surface et leur nombre d'habitants.

library('rgdal') 
# Chargement des données GEOFLA 
communes <- readOGR(dsn="COMMUNE",  layer="COMMUNE")
Region <- "AUVERGNE-RHONE-ALPES"
# Subset des communes de la region
comm <- communes[communes@data$NOM_REG %in% Region,]

2- Formatage des données et calcul des distances euclidiennes (à vol d'oiseau) entre le centre de chaque commune.

dat <- comm@data
# formatage 
dat$POPULATION <- as.numeric(levels(dat$POPULATION))[dat$POPULATION]
dat$SUPERFICIE <- as.numeric(levels(dat$SUPERFICIE))[dat$SUPERFICIE]
# Initialisation du tableau de sortie
Res <- data.frame(INSEE_COM=dat$INSEE_COM,SURF=NA)
# Calcul des distances entre communes
Dist <- as.matrix(dist(dat[,c("X_CENTROID","Y_CENTROID")])) 

3- Pour chaque commune on va ordonner les autres communes de la région en fonction de leur distance à la commune étudiée. Ceci, afin de faire une recherche concentrique autour de ce point, de la surface nécessaire pour regrouper 25% des habitants de la région.

 # On fait une boucle sur chaque commune
 for(i in 1:nrow(dat)){
   # 1 On calcule la proximité des autres communes
   ord <- order(Dist[i,])
   # 2 On calcule la somme cumulee de population
   CSPop <- cumsum(dat[ord,"POPULATION"])
   # 3 On trouve quelle liste de commune est necessaire pour atteindre
   # x% de la population
   ix=which(CSPop>0.250*max(CSPop))[1]
   # 4 On calcule la surface totale de cette zone
   surf = sum(dat[ord[1:(ix-1)],"SUPERFICIE"])
   # 5 On affecte le resultat dans le tableau final
   Res[i,"SURF"]<-surf
 }

Résultats 

On peut alors trouver la commune qui est le centre de la plus petite zone contenant 25% de la population totale et la commune qui est le centre de la plus grande zone contenant 25% de la population. Il est alors possible de créer une carte montrant ces deux zones. Nous obtenons le résultat suivant :
En orange, la plus petite zone "circulaire" qui concentre 25% de la population de la région. 
En bleu, la plus grande zone "circulaire" contenant seulement 25% de la population de la région. Il y parfois certaines communes colorées en vert, ce qui indique qu'elles se trouvent à cheval dans les deux zones.
En gris, les communes qui ne sont dans aucune de ces deux zones extrêmes (et qui représentent donc les 50% restant de la population de la région) 
Pour synthétiser : Dans la zone bleu il y a autant d'habitants que dans la zone orange, c'est à dire un quart de la population totale de la région à chaque fois.


Pour la région Alsace Champagne Ardennes Lorraine, la zone orange recouvre les villes de Strasbourg, Mulhouse et Colmar et concentre donc 25% de la population de la région mais ne représente que 9% de la surface totale de la région. De l'autre coté, on trouve une zone 6 fois plus grande (et qui représente donc 54% de la surface de la région) et qui elle aussi ne contient que 25% des habitants. Il s'agit donc d'une zone 6 fois moins peuplée et qui recouvre les villes de Troyes et Reims mais aussi beaucoup de communes de taille plus faibles.

Pour la région Aquitaine Limousin Poitou Charentes, évidemment la zone autour de Bordeaux est celle qui concentre en le moins d'espace possible 25% de la population et sans surprise, la zone autour de Guéret et Limoges fait honneur à sa réputation et se doit donc d'être beaucoup plus étendue afin d'elle aussi contenir 25% de la population.

  
Pour la région Auvergne Rhône Alpes, on constate sans surprise qu'une petite zone contenant Lyon et Saint-Étienne et qui couvre seulement 4% de la surface de la région concentre autant de population qu'une zone occupant 43% de la surface totale. L'obligation que nous nous sommes imposé d'avoir une zone circulaire implique dans ce cas un chevauchement au niveau de la ville de Saint-Étienne. Si l'on avait décidé d'une autre forme, nul doute que toute l'Auvergne aurait pu apparaitre en bleu ciel. Ceci reste un véritable exploit puisque l'est de la région est occupé par les Alpes qui ne sont pourtant pas extrêmement densément peuplées non plus (à l'exception de Grenoble).

Pour la Bourgogne Franche Comté, il est possible de trouver une zone moins peuplée que la région Besançon-Belfort-Montbéliard mais pour cela il faut aller du coté de Nevers et Auxerre. Là on sera d'accord pour dire que ça reste relativement désert dans les deux cas quand même.
En Bretagne, de manière prévisible, c'est le secteur de Rennes qui possède une plus forte densité de population et c'est plutôt le centre Bretagne qui est moins peuplé. Les zones en grises ne sont pas forcement les moins peuplées (Brest, Rennes, Lorient) mais elles ne le sont pas autant que la zone nord-est.

Dans le Centre - Val de Loire c'est la zone à proximité de Tours qui concentre le plus la population et sans surprise, on est moins dérangé par les voisins du coté de Bourges et Vierzon (même si on est globalement jamais dérangé par les voisins n'importe où en Centre Val de Loire)

En Corse, on arrive très vite à des extrêmes. Ainsi, 25% de la population de l'île se retrouve regroupée sur une zone occupant 2% de l'espace total (autour d'Ajaccio) alors qu'une zone immense occupant le centre de l'île et représentant 57% de la surface totale de la région regroupe elle aussi la même quantité d'habitants (cette zone étant principalement montagneuse)
Pour la région Ile de France c'est évidemment sans surprise. La comparaison n'est même pas nécessaire. Sachez cependant que dans le coin de Melun et Provins, c'est 50 fois moins dense environ qu'à Paris.

Pour la région Languedoc Roussillon, le résultat est moins impressionnant car les deux zones optimales se chevauchent de manière importante. Dans le cas de la zone orange, il s'agit de la zone Toulouse - Castres - Albi alors que dans la zone bleue, elle regroupe tout l'arrière-pays (Lozère, Aveyron...). En effet, là aussi, les zones côtières restant relativement densément peuplées (Montpellier et Nîmes par exemple)

Un bien élégant résultat que celui du Nord Pas de Calais-Picardie. Montrant l'importante densité autour de Lille et Lens qui représente seulement 4% de la surface totale et les zones plus clairsemées de l'Oise et des alentours où 25% de la population occupe 49% de la surface totale, soit une zone 12 fois moins peuplée. Ceux qui se sont déjà perdu en forêt de Compiègne comprendront.

En Normandie, c'est la zone Rouen - Évreux qui regroupe en un minimum d'espace 25% de la population. On retrouve aussi Évreux dans la zone la moins densément peuplée, mais cela est principalement lié à sa proximité avec la zone sud de la Normandie, avec l'Orne et le sud Calvados où la densité de population est plus faible puisqu'elle se rapproche de la densité du nombre de vaches au kilomètre carré.

Un résultat bien propre pour les Pays de la Loire. La région nantaise représente 9% de la surface mais contient autant d'habitants que la Mayenne et la Sarthe. Il faudra donc que nos amis mangeurs de rillettes fassent attention à ne pas se fâcher avec leurs voisins petits beurres.

Dernier exemple illustrant de manière flagrante la surpopulation en bord de mer. Il existe une zone représentant 73% de la surface de la région Provence-Alpes Côte d'Azur qui n'est occupée que par 25% de la population totale. Cela signifie donc que les 75% d'habitants restant se concentre sur 27% de la surface de la région. Il existe même une zone autour de Marseille qui concentre à elle seule 25% des habitants (sur seulement 2% de la surface). Ils sont fadas ces sudistes.

Conclusion

Pour finir, j'ai développé une application shiny (que je ne peux hélas pas rendre publique sur shinyapps.io car trop gourmande en mémoire). Elle permet à l'utilisateur de choisir sa région à étudier, mais aussi de modifier le percentile analysé (pas nécessairement 25%). Un recalcul des zones optimales est alors effectué. Il existe aussi la possibilité pour l'utilisateur ce cliquer sur la carte afin de centrer le calcul sur une zone de son choix et de constater quelle zone est nécessaire pour regrouper les x% de la population demandée. A défaut d'une appli, vous pouvez au moins voir une petite vidéo de démo (qui vous prouve que je ne raconte pas des balivernes)



Pignons et plateaux

Je ne suis pas du tout un spécialiste du vélo et donc les lignes qui vont suivre ne s'adresseront qu'aux incultes du cyclisme comme moi. Je passe évidemment sur les détails du fonctionnement de base d'un vélo pour me concentrer uniquement sur le fonctionnement des vitesses (parce qu'il y a un intérêt mathématique).

Le braquet

Le braquet est le rapport entre le nombre de dents du plateau situé sur le pédalier et le nombre de dents du pignon situé à l’arrière. C'est ce rapport qui indique la démultiplication qu'il existe entre les deux. Un braquet de 2 indique qu'un tour de pédalier engendrera 2 tours du pignon et donc deux tours de la roue arrière. Gros novice que je suis, je me demandais comment s’organisait le choix du nombre de dents sur les pignons et les plateaux. Mon esprit mathématique tordu pensait qu'il serait plus optimal de proposer des nombres de dents sur les pignons qui soient par exemple des nombres premiers afin qu'aucun braquet n'ai la même valeur.
Après être retourné auprès de ma bicyclette afin d'en vérifier les caractéristiques je vous livre ici les résultats correspondant donc à mon modèle. Cette formidable machine Décathlon possède donc à l'avant trois plateaux de 42, 34 et 24 dents respectivement et de 7 pignons à l'arrière de 14, 16, 18, 20, 22, 24 et 28 dents (c'est quand même ballot de ne pas avoir mis un pignon à 26 dents, la série aurait été plus harmonieuse).
On constate donc que mon idée géniale de ne mettre que des nombres premiers dans les pignons ne semble pas faire l'unanimité et que c'est certainement un technicien, amateur des nombres pairs, qui a crée le design final de ce vélo.

Si vous avez déjà fait du vélo, vous aurez surement constaté de vous même qu'il existe des braquets plus ou moins en double selon les réglages. En effet, rouler sur le grand plateau et avec un pignon assez petit semble similaire au fait de rouler sur le plateau intermédiaire avec un pignon assez grand. Nous pouvons constater cela avec le graphique suivant, qui représente le braquet obtenu selon le pignon utilisé et ce, en fonction des trois plateaux disponibles.
 


On constate en effet des répétitions dans les braquets disponibles. Par exemple le pignon central du grand plateau (ligne bleue) offre un braquet de 42/20 = 2.1 et le second pignon du plateau intermédiaire (en gris) donne un braquet de 34/16 = 2.125. Ce n'est effectivement pas exactement la même valeur mais il faut reconnaitre qu'elles sont quand même très similaires. Il existe aussi des égalités vraiment parfaites (par exemple entre le braquet 42/28 et 24/16 par exemple). Tous ces résultats sont détaillés dans le tableau suivant :


Grand PlateauPlateau intermédiairePetit Plateau
Pignon 143,002,431,71
Pignon 162,632,131,50
Pignon 182,331,891,33
Pignon 202,101,701,20
Pignon 221,911,551,09
Pignon 241,751,421,00
Pignon 281,501,210,86

On notera aussi la combinaison petit plateau et pignon 24 qui est la seule à créer un braquet de 1. Dans cette configuration, un tour de pédalier engendre donc exactement un tour de roue, ce qui est cocasse n'est-il pas? En effet, puisque cela correspond au braquet du vélocipède crée en 1861 et ancêtre du vélo qui ne disposait pas de chaîne et où les pédales étaient reliées à la roue avant et offraient donc, par définition, un braquet de 1. Je vais donc m'empresser de tester ce braquet afin de retrouver les sensations ressenties par nos ancêtres.

Vélocipède Michaux
Pour en revenir à notre tableau, on constate quand même beaucoup de redondance dans les braquets disponibles. Cette redondance m'a toujours semblé étonnante. En effet, il semblerait plus logique que le braquet obtenu sur le pignon à 28 dents et le grand plateau soit légèrement plus grand que le braquet obtenu sur le pignon à 14 dents associé au plateau intermédiaire afin d'obtenir une suite de braquets entièrement décroissante. D'ailleurs, dans le cas présenté ci-dessus, le plateau intermédiaire n'a pas d'utilité puisque les braquets obtenus grâce aux petit et grand plateaux couvrent la palette totale des braquets de 0.86 à 3 et ce, sans hiatus. Le petit plateau permettant de déployer des braquets allant jusqu’à 1.71 et le grand plateau pouvant descendre jusqu'à des braquets de 1.5.

Doit-on supprimer le plateau intermédiaire?

La question du plateau intermédiaire se pose donc. La justification de son utilité n'est pas mathématique mais elle est en fait mécanique. En effet, le décalage d'alignement entre certains plateaux et certains pignons implique que dans l'utilisation ces combinaisons engendre un décalage dans l'alignement de la chaîne et donc possiblement une usure prématurée de celle ci (du fait des efforts qui lui sont appliqué). La règle générale et que lorsque l'on se trouve sur les plateaux extrêmes (le grand plateau ou le petit plateau) il vaut mieux éviter d'utiliser la moitié des pignons situés à l'opposée. Le schéma suivant (pour le cas d'un vélo à 8 pignons) montre les combinaisons à éviter.


Dans le cas d'un vélo à sept pignons il convient donc d’éviter d'utiliser les les pignons 22, 24 et 28 avec le grand plateau, on peut aussi éviter d'utiliser les pignons extérieurs 14 et 28 avec le plateau central et pour le petit plateau il conviendra d’éviter d'y associer les pignons 14, 16 et 18. On peut alors mettre à jour notre graphique précédent pour en comprendre les implications : 


On constate alors qu'il y a beaucoup moins de superpositions dans les braquets utilisables. Le plateau intermédiaire trouve alors son utilité puisqu'il permet effectivement de faire harmonieusement la jonction entre les braquets du grand et du petit plateau.

Conclusion

En analysant les nombres de dents des plateaux et pignons afin de voir les braquets générés nous avons tout d'abord montré qu'il n'y avait pas de volonté de les rendre forcement uniques. Cette absence d'unicité s'expliquant par le fait que certaines combinaisons ne sont pas recommandées. Je me coucherais donc moins bête et la prochaine fois je ferais donc attention à ne pas utiliser certains braquets qui pourraient user de manière prématurée la chaîne ou les pignons.




Les nombres anacycliques

Introduction

Dans le monde des jeux de mots, existent les anagrammes. Il s'agit de couples de mots utilisant les mêmes lettres. Par exemple CASSER et SACRES. Chaque lettre est utilisée le même nombre de fois mais la signification du mot est bien évidemment différente. Une version plus avancée des anagrammes est constituée des palindromes. Ils s'agit de mots qui se lisent à l'endroit et à l'envers et qui ont le même sens (comme KAYAK). Entre ces deux types de mots se trouvent les anacycliques. Il s'agit de couple de mots qui utilisent les mêmes lettres mais qui n'ont pas le même sens selon qu'on les lise à l'endroit où à l'envers. Par exemple NOEL et LEON ou bien TRACE et ECART sont des anacycliques. Les anacycliques font donc eux aussi partie de la famille des anagrammes avec la condition supplémentaire que l'ordre des lettres doit être inversé (et non pas seulement mélangé).

Pour en revenir aux nombres, on constate évidemment que tous les nombres sont anacycliques par définition. Par exemple 123 et 321. Quand on lit un nombre en sens inverse du sens de lecture on obtient forcément un autre nombre qui a une signification. L’intérêt ne réside donc pas là. La subtilité des nombres anacycliques consiste à prendre un nombre dans une base (traditionnellement en base 10) et de l'exprimer ensuite dans une autre base (par exemple en base 16).

L'exemple classique est le nombre 53 (en base 10) qui s'écrit 35 en base 16. C'est donc un nombre anacyclique. Le problème consiste donc à trouver tous les nombres anacycliques. Hélas, il ne semble pas y avoir d'autre solution que de tester de manière exhaustive tous les nombres en base 10 un à un afin de vérifier si ils sont anacycliques. En effet, un nombre anacyclique (comme 834 qui s’écrit 438 en base 14). Cela signifie que l'on a l'égalité suivante:



Ce qui peut aussi s'écrire sous la forme :



On en conclura qu'un nombre en base b de la forme a2a1a0 en base 10 (ici a2=8, a1=3, a0=4) est anacyclique si il est solution de l'équation suivante :



Et donc par extension que tout nombre anacyclique de longueur n doit résoudre l'équation suivante:



Où b est la base dans laquelle on effectue le calcul. On obtient donc une équation à n inconnues (il faut trouver les différentes valeurs de ai). Attention cependant, il existe des nombres qui sont solution de cette équation mais qui ne sont pas anacycliques. Par contre si un nombre ne résout pas cette équation, on a la certitude qu'il n'est pas anacyclique.
Par exemple 13 (qui vaut 31 en base 4 et est donc un nombre anacyclique) est solution de cette équation mais 26 est aussi une solution (tout comme 39) alors que ces nombres ne sont pas anacycliques.

Malgré tout, nous voilà bien avancés puisqu'il faut tester toutes les combinaisons pour savoir si elles résolvent cette équation. Cependant, il ne sera pas obligatoire de tester tous les nombres de 1 à l'infini afin de trouver toutes les solutions.

Réduction de l'espace de recherche

En effet, il est possible de réduire l'espace de recherche puisque l'une des règles d'un nombre anacyclique est qu'il doit forcement avoir le même nombre de chiffre. Or, plus la base est petite (par exemple en binaire), plus le nombre de chiffres nécessaire pour représenter un nombre est grand. Par exemple en base 10, le nombre 99 s'écrit avec 2 chiffres. Mais en base 2, il s'écrit avec avec 9 chiffres : 1100011. Il est donc forcement impossible de trouver des anacycliques en base deux avec des nombres élevés, uniquement parce que le nombre de chiffres nécessaires pour les écrire n'est pas le même (il n'est donc même pas nécessaire de tester si la lecture dans un sens en base 10 correspond à la lecture dans l'autre sens en base 2)

Il est donc possible de trouver la limite haute des valeurs à tester pour chaque base. Le tableau suivant indique pour chaque base, le nombre de chiffres nécessaire pour écrire des nombres en base 10. Par exemple la troisième ligne du tableau correspond aux nombres à 3 chiffres en base 10 (c'est à dire les nombres de 100 à 999). Le tableau indique qu'en base 2, il faut entre 7 et 10 chiffres pour représenter ces nombres (en effet 100 s'écrit 1100100 et 999 s'écrit 1111100111). Ce qui rend impossible l'existence d'anacycliques dans cet intervalle. C'est pourquoi la case est colorée en bleu. Cela indique qu'il faut trop de chiffres pour espérer représenter ces nombres. De l'autre coté, en orange, se trouvent les cas où il faut moins de chiffres en base 10 que dans l'autre base, pour représenter les nombres. Il ne reste plus alors qu'à se limiter aux cases grises qui, elles, contiennent (au moins partiellement) des nombres ayant la même quantité de chiffres dans les deux bases (ce qui les rend éligibles au fait d'être anacycliques)


Résultats

Pour trouver les nombres anacycliques, la meilleure solution consiste à tester un à un chaque nombre dans chaque base (dans les limites définies par le tableau précédent). Cette technique à le mérite d'être fiable et relativement rapide tant que l'on ne doit pas tester des nombres à plus de dix chiffres. En revanche pour les bases 9 11 et 12, le nombre d'éléments à tester est grand voire même, incalculable.
En effet, la limite des nombres que peuvent stocker les machines se situe souvent autour de 2^64 ce qui correspond à un nombre à 22 chiffres. Dans notre cas, il faudra pourtant tester des nombres contenant jusqu'à 25 chiffres, ce qui n'est pas possible. Il existe des manières d'effectuer ces vérifications qui circonviennent à ces problèmes mais les temps de calcul qui en résultent sont encore trop longs.
Bon, en tout cas, la liste est correcte pour toutes les bases sauf pour 9, 11 et 12 donc. Dans ces derniers cas elle sera potentiellement incomplète pour les nombres à plus de 10 chiffres.

BaseNombres anacycliques (en base 10)
2
3
413
5
620532
723 - 46 - 2116 - 15226
81527465
9445 - 313725 - 3454446
10Beaucoup
11454003312
12315231
1343 - 86 - 774 - 956111321
14834
15
1653 - 371 - 5141 - 99481
17
18
1942 - 63 - 84
20
21551 - 912
2273 - 511
23
24
2583

Conclusion 

On constate aisément que le nombre d'anacycliques est très faible et avec des valeurs extrêmement aléatoires, ce qui incite à conclure que tout ceci est parfaitement inutile et sans aucune application concrète (j'ai beau chercher, je n'y vois strictement aucune utilité).