Aller au contenu

Le package listofitems

Un nouveau package, tiens… Ça faisait longtemps ! Il répond au doux nom de listofitems et il fait suite à une correspondance assez soutenue que j’ai eue avec Steven B. Segletes. En effet, Steven a publié le package getargs sur le CTAN le 22 mai 2016. Par simple curiosité (et connaissant un peu la façon de coder de l’individu, j’avoue), j’ai été voir le code et j’en suis ressorti carrément refroidi ! Le code est buggué et il manque des fonctionnalités, ce que j’ai immédiatement signalé à Steven. Au fil de presque 3 mois d’échanges d’email, j’ai donc écrit un package ressemblant à getargs, mais n’ayant pas ses travers. Continuer la lecture

pi_x_1

Tracer la fonction π(x)

Suite à une nouvelle question sur tex.stackexchange.com, poursuivons sur la lancée des nombres premiers et demandons-nous à présent comme tracer la fonction \pi(x) qui, lorsque x est entier, représente le nombre d’entiers premiers inférieurs ou égaux à x.

Avant d’envisager tout tracé, il faut élaborer un test qui décide si un nombre est premier ou pas. Une multitude de tests existent, dont la complexité asymptotique va de l’exponentielle au polynomial. Nous n’irons pas bien loin dans les valeurs de x, il est donc inutile de programmer très élaboré. Une approche naïve suffira amplement. Continuer la lecture

coprime_annonce

Entiers premiers entre-eux

Une question amusante a vu le jour sur tex.stackexchange.com : il s’agit de représenter sur une grille carrée de dimension les couples (<a> ; <b>) de nombres premiers entre-eux (coprime, en anglais) : pour ce faire, le pixel de coordonnées  (<a> ; <b>) est affiché si PGCD(a ; b)=1.

Bien sûr, la solution la plus immédiate est de faire appel à tikz ou sa sous-couche pgfplot et c’est d’ailleurs ce qui a été fait, malgré une certaine lenteur. Juste pour voir la différence de vitesse, j’ai codé en quelques minutes l’équivalent en TeX pur.

Pour marquer tous les couples d’entiers premiers entre-eux dans la grille de dimensions (200 ; 200), il faut environ 1,25 seconde sur mon PC. La même chose demande environ 17,5 secondes à tikz, ce qui le rend 14 fois plus lent ! Et oui, tikz se traîne grave, vous ne le saviez pas ? Continuer la lecture

loop

Boucle \for à syntaxe souple

De nombreuses boucles de type for ont été écrites, la plus célèbre est \foreach de l’extension pgffor qui a de très nombreuses fonctionnalités dont les principales sont :

  • itérer une variable sur un ou plusieurs intervalles avec choix du pas ;
  • itérer plusieurs variables simultanément.

Les inconvénients sont connus :

  • l’exécution d’une boucle se déroule dans un groupe ;
  • il n’est pas possible de choisir la syntaxe des variables itérées qui doivent être séparées les unes des autres par /.

Continuer la lecture

maze_4

Construire un labyrinthe

La génération d’un labyrinthe n’est pas une chose bien difficile en programmation. En fait, un labyrinthe est un tableau de cellules séparées par des murs. Tout l’art consiste à abattre certains murs pour obtenir un labyrinthe. Comme l’explique wikipédia, il existe deux algorithmes principaux pour générer un labyrinthe parfait. Nous utiliserons ici celui par « exploration exhaustive ». Continuer la lecture

capture_texnique

TeXnique.fr

Aujourd’hui le 15 octobre 2015 résonne un coup de tonnerre dans le ciel TeXien francophone, plutôt calme habituellement !

Personnellement, j’y avais cru, je l’avais espéré puis désiré, mais de guerre lasse, je ne l’attendais même plus. Ingrat que je suis, car c’est fait. La France, et plus largement les francophones, a son site de question/réponse sur TeX et affiliés : texnique.fr

Continuer la lecture

hp12c

Créer une calculatrice

Je suis tombé un peu par hasard sur un défi du site « Zeste de savoir », le site dissident du désormais très commercial « openclassroom », anciennement « Site du zéro ». Le défi du mois d’octobre est de « créer une calculatrice ». L’intitulé parait, de prime abord très ambitieux, surtout pour TeX qui est un parent pauvre en ce qui concerne le calcul. Continuer la lecture

capture_genchain

Chaine de sommes modulo 10

Sympa et originale la question sur l’eldorado : partir d’une série arbitraire de n nombres (uk)k=1..n tous strictement inférieurs à 10 et à chaque itération, calculer les nouveau termes de la suite (vk)k=1..n selon la règle

vk=uk+uk+1 modulo 10 si k<n

vn=un+u1 modulo 10

Une fois ceci fait, la suite (uk) est prise égale à la suite (vk) et on peut itérer à nouveau. Continuer la lecture

chemfig_2

Chemfig 1.1

Je suis d’un naturel « pas pressé », plutôt fainéant, un peu nonchalant à forte tendance procrastinatrice et pour les mises à jour de mes packages, je m’attache à ne surtout pas aller à contresens de ce trait de caractère. Après beaucoup de temps, assez peu de travail de mon côté, quelques des tergiversations quant à savoir si je le fais ou pas, je mets donc la version 1.1 de chemfig sur les dépôts du CTAN. Continuer la lecture

game_of_life

Jeu de la vie

Le jeu de la vie, inventé par John Cownay, se passe sur une tableau bidimensionnel où chaque cases représente une « cellule » susceptible de se trouver dans 2 états : vivante ou morte.

Une configuration initiale est donnée par le joueur et par la suite, ce tableau se transforme à chaque génération au cours du temps et passe du stade n au stade n+1 selon les règles suivantes : Continuer la lecture