Archives pour mai 2008

[Project Euler] Problème 21, vive le BruteForcing :p

Icon for post #54

…parce que c’est quand même particulièrement bon de voir son ordinateur bosser à plein temps pour une fois! Pour rappel, Project Euler (en anglais) est un site qui propose des dizaines de problèmes mathématiques à résoudre grâce à une logique implacable, des algorithmes de programmation très poussés… ou tout simplement avec la très connue méthode dite de Brute Force ! (en gros on tente de créer un algorithme pas trop lent et on laisse l’ordi exécuter des calculs monstrueux en priant pour que ça ne prenne pas trop de temps et que l’ordi ne plante pas à 99% de la recherche) ^^

Je suis tombé tout à l’heure sur le Problème 21 dont voici l’énoncé :

Let d(n) be defined as the sum of proper divisors of n (numbers less than n which divide evenly into n).
If d(a) = b and d(b) = a, where a ≠ b, then a and b are an amicable pair and each of a and b are called amicable numbers.

For example, the proper divisors of 220 are 1, 2, 4, 5, 10, 11, 20, 22, 44, 55 and 110; therefore d(220) = 284. The proper divisors of 284 are 1, 2, 4, 71 and 142; so d(284) = 220.

Evaluate the sum of all the amicable numbers under 10000.

Peut-être est-il possible de trouver la solution de tête (tous mes voeux de no-lifitude à ceux qui en sont capables), mais pourquoi faire simple quand on peut faire compliqué, hein ? Voici donc mon petit programme en PHP :
Read more »

Confirmation de ma geekitude : j’ai eu mon *code*

Icon for post #48

Mouhahaha, ça c’est fait… et pourtant j’ai eu quelques sueurs froides durant l’examen, pas si facile que ça! Questions pièges et situations tendancieuses à gogo. Pas de doute, faut y aller à l’instinct sans (trop) réfléchir :P

Ne restent donc plus que les quelques 20 heures de cours de conduite, bien plus intéressantes que les heures de révision de l’épreuve théorique soit dit en passant ^^

(3615 my life) Mes 5 séries TV préférées

Icon for post #46

A l’occasion de la sortie du dernier épisode de Dr House tôt ce matin, cet article sera consacré (oh surprise) à mes 5 séries TV préférées, qui sont dans l’ordre : Dr House, The BigBang Theory, Dexter, My Name Is Earl et The IT Crowd. Chaque série aura droit à une petite description (thanks, Wikipédia) et à quelques trailers et extraits sympatoches… ça me permettra en même temps de résoudre les problèmes d’insertion de vidéos en flash dans les articles de ce blog :P
Read more »

Tutoriel: lister les opcodes générés par vos scripts PHP

Icon for post #45

PHP est un langage interprété : les fichiers qui contiennent le code que vous tapez sont parsés par le moteur du langage (le fameux “Zend Engine”), et les instructions qu’ils contiennent sont compilées en des instructions de plus bas niveau, instructions qui seront à leur tour exécutées pour produire le résultat attendu (ou des bugs :P ). Ce processus (code initial => compilation en opcodes => exécution) a lieu à chaque fois que le script est appelé, à moins que vous n’utilisiez un cache d’opcodes qui accélérera l’exécution de vos scripts en faisant sauter des étapes au moteur de PHP…
Maintenant, si vous êtes un maniaque de l’optimisation, ou bien si comme moi vous vous intéressez à tout donc à ce qui se passe “sous le capot de PHP”, vous vous demandez sans doute comment accéder à ces instructions de bas niveau ;)
Read more »

« Page Précédente