Python : un petit Sudoku pour commencer

Ces temps-ci, je découvre Python, un langage de programmation très apprécié en particulier dans la communauté scientifique. Ce “langage interprété multi paradigme” intègre des concepts développés dans plusieurs langages récents, ce qui en fait peut-être le langage le plus complet disponible actuellement.

Pour une première approche de ce langage, je vous propose l’analyse du

Plus Court Solveur de Sudoku

Voici un  programme en Python de 173 caractères seulement qui serait le plus court solveur de sudoku connu actuellement :

def r(a): i=a.find('0') if i<0:print a [m in[(i-j)%9*(i/9^j/9)*(i/27^j/27|i%9/3^j%9/3)or a[j]for j in range(81)]or r(a[:i]+m+a[i+1:])for m in`14**7*9`]r(raw_input())

Ce programme est extrêmement compact et condensé, voire cryptique à l’instar des Cignatures. Ce n’est pas forcément la meilleure façon de programmer, mais ça révèle souvent la puissance cachée de certains langages. Ce programme est décrit en anglais et en détail ici, mais voici son principe en gros et en français:

(la suite sur le blog de Dr. Goulu)

Goulu

Tombé dans la science et l'informatique quand j'étais petit. Maintenant, je m'intéresse à l'avenir car c'est là que j'ai l'intention de passer le reste de ma vie.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.