La logique du Jeu de la Vie : exercices amusants de pensée latérale

Magazine
Marque
GNU/Linux Magazine
Numéro
213
Mois de parution
mars 2018
Domaines


Résumé
Le Jeu de la Vie de John H. Conway est encore loin d'avoir livré tous ses secrets ! Son créateur estime que les propriétés fondamentales de ce célèbre automate cellulaire sont maintenant déterminées [1], mais les réalisations informatiques continuent de progresser et deviennent de plus en plus audacieuses [2]. Nous décortiquerons une famille d’algorithmes « latéraux » efficaces en temps de calcul, économes en mémoire, pour débrider toute la puissance de votre PC dernier cri.

Tristan Colombo a présenté le Jeu de la Vie dans ce magazine [3] sous un angle purement pédagogique. Son code en Python présente les principes de base, mais ne permet pas d'exploiter au mieux toute la puissance d'une machine contemporaine. En raison de mon obsession notoire pour la vitesse, une suite s’imposait.

1. Un peu de néologisme

Je suis fasciné par les automates cellulaires depuis le lycée et mon mémoire de maîtrise [4] portait sur un sous-type qui simulait des turbulences de fluides. J'ai ainsi conçu des structures de données astucieuses, ainsi que des algorithmes complexes codés en assembleur pour exploiter les derniers pourcents de performance d'un PC. En comparaison, le Jeu de la Vie est une balade de santé, à laquelle je vous convie ici.

J’ai aussi mis au point une approche appelée optimalisation, qui est le stade extrême de l'optimisation.

Selon le dicton : « There Ain’t No Such Thing As the Fastest Code. » [5](le code le plus rapide n'existe pas)....

Cet article est réservé aux abonnés. Il vous reste 97% à découvrir.
à partir de 21,65€ HT/mois/lecteur pour un accès 5 lecteurs à toute la plateforme
J'en profite


Articles qui pourraient vous intéresser...

Débogage JavaScript côté client

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
111
Mois de parution
novembre 2020
Domaines
Résumé

Si JavaScript a longtemps évoqué l’idée de petit script dans un site internet, il est aujourd’hui souvent utilisé comme fondation d’application web complexe (notamment via des frameworks comme ReactJS ou VueJS). Dans ce contexte d’usage avancé, il est nécessaire d’avoir en main les bons outils et techniques de débogage.

Principes de l’orienté objet en C++ : l’encapsulation

Magazine
Marque
GNU/Linux Magazine
Numéro
242
Mois de parution
novembre 2020
Domaines
Résumé

La programmation orientée objet obéit à des principes. Les 4 principaux principes sont l’encapsulation, l’héritage, le polymorphisme et la généricité. Que de noms barbares, que nous allons démystifier de manière logique ! Des exemples déclinés dans le langage C++ illustreront ces principes. Ce premier article traite de l’encapsulation.

Déboguer un exécutable Java

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
111
Mois de parution
novembre 2020
Domaines
Résumé

On attribue souvent au succès de Java la relative simplicité de sa syntaxe et surtout son vaste écosystème. C’est oublier un point essentiel dans son adoption : son débogueur et ses fonctionnalités qui simplifient tant le travail d’analyse et de résolution d’une erreur à l’exécution.

Créez un lecteur RSS avec PHP

Magazine
Marque
GNU/Linux Magazine
Numéro
242
Mois de parution
novembre 2020
Domaines
Résumé

Nous allons découvrir avec cet article le format de données RSS. Pour une mise en pratique, nous développerons une petite application en PHP permettant de lire un flux RSS.

Mise au point à distance avec GDB

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
111
Mois de parution
novembre 2020
Domaines
Résumé

Le débogueur GDB est un outil indispensable pour la mise au point de programmes, a fortiori dans le cas du développement croisé (mise au point à distance ou « remote debug »). Dans cet article, nous allons voir comment mettre en place différentes solutions suivant plusieurs cas de figure (programme en espace utilisateur, noyau Linux statique ou pilote en espace noyau). Afin de permettre au plus grand nombre de lecteurs de tester les exemples décrits, nous utiliserons l’émulateur QEMU (et Buildroot) pour les démonstrations.