Élève de MP depuis fort fort longtemps. Objectif : intégrer malgré un esprit qui dérive. Objectif accompli, pour le meilleur et surtout pour le pire.
Si vous aviez le pouvoir de changer UNE chose sur ZdS qu’est ce que vous changeriez ? et Pourquoi ? Exprimez vous
Je changerais la manière dont sont traités les auteurs pour qu’ils produisent plus (nous savons grâce à un indic qu’il y en a qui bénéficient d’un régime de faveur).
Donc il faudrait peut-être donner plus d’agrumes frais, et puisqu’il y a quand même beaucoup d’espèces animales, on pourrait même obtenir du lait et de la viande fraîche… En étant bien nourri, il produiront sûrement plus.
À côté de çà, il faut faire attention à ne pas dépasser les frais, et pour les motiver, les châtiments corporels devraient naturellement être plus présents. Il faut cependant faire attention à les garder en bonne santé pour qu’ils continuent à attirer d’autres auteurs
Citations ?
Je fais des rimes, Quand je m’exprime. Je fais des vers, Sans en avoir l’air. Mais le plus fort, C’est que j’en fais encore !
Réflexions ?
Terry Pratchett : « La lumière croit voyager plus vite que tout, mais elle se trompe. Elle aura beau
foncer le plus vite possible, elle verra toujours que les ténèbres sont arrivées
les premières et qu’elles l’attendent. ».
« Le temps est une drogue. À haute dose, il tue. ». Donc faites attention. Tuez le temps avant qu’il ne vous tue.
Moi : « L’homme est un loup pour l’homme et l’argent est le chef de la meute… ».
« Le but de concourir est de conquérir. »
« Il faut faire ce qui est bon, pas ce qui est facile. »
« (Quand il y a un bug, ) il faut parfois penser de nouvelles solutions plutôt que panser les anciennes »
« Avoir piscine n’est une excuse que si ton ordinateur ne va pas dans l’eau. »
Gramme hier
De la grammaire et d’autres trucs du genre. Parce que voilà.
- « Pallier quelque chose » et pas « pallier à quelque chose » (en gros, « pallier », c’est « compenser »).
- Après que + infinitif : par exemple, « après que j’ai écrit cet exemple, j’ai décidé d’enregistrer ma page ». Dans le doute, utiliser « après avoir » ne fait pas de mal.
- On se souvient « de quelque chose », mais on se rappelle « quelque chose ». Le verbe « rappeler » est transitif direct.
Programmation ?
« Ce qui se conçoit bien s’énonce clairement. ». Si ça ne s’énonce pas clairement, c’est à remplacer.
- Less code, less error.
- Less is more.
- The best code is no code at all.
Mes tutoriels
C
LaTeX
Mathématiques
Python
Ruby
À écrire
Mathématiques et algorithmie
- Dénombrement et probabilités.
- Introduction à la recherche de plus court chemin.
LaTeX
- Beamer (thème Metropolis)
- Écrire des CV en LaTeX.
- Bibliographie en LaTeX avec Biber.
- Indexation en LaTeX avec xindy.
- Latexmk pour faciliter la compilation.
- Des liens hypertextes avec hyperref ?
Ruby
- Le formatage de chaînes en Ruby.
Série de billets - Création d’un Shoot 'em up en C avec la SDL
Avis livre
Ruby
Des avis rapides sur des livres de référence en Ruby. À qui ils s’addressent, de quoi ils traitent, pourquoi ils sont bien, etc.
The Well-Grounded Rubyist
The Ruby Way
The Ruby Programming Language
Practical Object-oriented Design in Ruby
Eloquent Rubt
C
À regarder
- Simple2D en C (bibliothèque basée sur SDL2 et OpenGL)
- Ruby2D (basée sur Simple2D)
Parce qu’il faut que ça rime.
- Prends Ruby, c’est joli.
- Prends Python, c’est bon.
- Garde le C, c’est assez.
Un peu d’algo ?
Sous-somme
Soit T un tableau d’entiers de taille n, et soit r un entier. Trouver (s’ils existent) deux éléments du tableau x et y tels que x+y=n.
Une solution en O(nln(n) consiste à d’abord trier le tableau. Ensuite, on considère deux indices d (début) et f (fin) du tableau. Au début de l’algorithme, d vaut 0 et f faut n−1.
- Si T[d]+T[f]=n, alors c’est fini, on a trouvé deux éléments.
- Sinon, si T[d]+T[f]<n, c’est que T[d] est trop petit (en le rajoutant au plus grand nombre, on a un nombre trop petit), on incrémente d et on recommence.
- Sinon, si T[d]+T[f]>n, c’est que T[f] est trop grand (en le rajoutant au plus petit nombre, on a un nombre trop grand), on décrémente f et on recommence.
Et on fait ceci tant que d>f. Si on arrive au point d<=f, les éléments n’existent pas.
En fait, on a en fait un deuxième algorithme qui trouve deux indices tels qu’on a la somme dans un tableau trié. On peut l’écrire de manière récursive avec des sous-tableaux ou encore avec les indices.
def f(tab, d, f, r)
return (-1, -1) if d - b < 1
return (d, f) if tab[d] + tab [f] == r
return f(tab, d + 1, f) if tab[d] + tab [f] < r
return f(tab, d, f - 1)
end
def main(tab, r)
f(tab, 0, tab.size - 1, r)
end
Qui a les boules !?
On considère une urne avec n boules noires et b boules blanches. Tant qu’il reste au moins deux boules dans l’urne, on en tire deux.
- Si elles ont la même couleur, on les jette.
- Sinon, on jette la noire et on remet la blanche dans l’urne.
Si l’urne est vide, on remet une boule noire.
Et on veut savoir la couleur de la boule restante dans l’urne.
Le problème peut avoir l’air compliqué. Pourtant, si on s’attarde sur les boules blanches, on se rend compte que leur nombre ne peut diminuer que de deux. On a alors deux cas.
- Si b est pair, alors tant qu’on n’a pas retirer toutes les boules blanches, il reste au moins deux boules blanches dans l’urne. Au moment où on retire les deux dernières boules blanches, l’urne ne contient que des boules noires. Si elle est vide, on remet un boule noire, et bien sûr, avec notre procédé, s’il n’y a que des boules noires, on obtient une boule noire à la fin.
- Si b=2p+1 est impair, alors tant qu’on en a pas retiré 2p de blanches, il reste au moins 2 boules blanches dans l’urne. Au moment où on retire deux des trois dernières boules de l’urne, il reste une boule blanche dans l’urne et possiblement des boules noires. Mais la boule blanche ne pourra jamais être jetée, tandis que le nombre de boules noires va décroître jusqu’à épuisement. La dernière boule est donc blanche.
Fulcrum
On reprend un tableau T. Cette fois, on cherche l’indice du tableau tel que la différence entre la somme des éléments avant cet indice et la somme des éléments après cet indice soit minimum. On cherche donc l’indice i qui minimise
∣∣∣∣∣∣k=0∑iT[k]−k=i+1∑n−1T[k]∣∣∣∣∣∣.
âne à grammes
On considère une liste de mots L (un dictionnaire) de taille N et une liste de mots l. Notre but est de trouver pour chaque mot w présent dans l, toutes les anagrammes (c’est bien un mot féminin) de w présents dans L.
Si on considère un très gros dictionnaire, il apparaît vite qu’une solution trop naïve va être dépassée.
Comme toutes les autres problèmes, les solutions sont multiples. Cependant, la majorité des solutions s’appuieront certainement sur le fait de trouver une prédicat p invariant par mélange. L’idée est donc de trouver une fonction p tel que w′ est un anagramme de w si et seulement si p(w)=p(w′).
On peut par exemple compter le nombre d’occurrences de chaque lettre (on se convainc assez facilement que deux mots sont des anagrammes l’un de l’autre si et seulement si toutes les lettres apparaissent un même nombre de fois dans chacun d’entre eux).
Et on en fait quoi de ce prédicat ?
On pourrait par exemple stocker tous les mots de L dans une table de hachage H. On stockerait w dans une liste à la case p(w). Ainsi, pour tout mot w, H(p(w)) contiendrait toutes les anagrammes de w. Notre table de hachage est construite une bonne fois pour toute, et on peut ensuite l’utiliser pour avoir les anagrammes de n’importe quel mot.
En fait, il faut juste un prédicat qui se calcule rapidement.
Décomposition en nombres premiers
Projets
DSL Ruby LaTeX
def bleu(s)
textcolor blue s
end
@boxes = {}
def savebox(name, &block)
@boxes[name] = block
end
def box(name)
@boxes[name].call
end
documentclass [12pt, french] article
document do
section "Document test"
verbatim do
n = 10
s = 0
(1..n) do |i|
s += i
end
end
savebox:test do
"Ici, on a un gros spoiler, avec beaucoup de code."
"Ce bout de code calcule la somme des entiers de $1$ à $n - 1$."
math do
\sum_{k = 1}^n k
end
5.times do |n|
math do
\sum_{k = 1}^{
end
end
end
"On affiche du #{bleu "texte en bleu"} et du #{emph "texte important"}.
puis on affiche la boîte sauvegardée"
box(:test)
"On affiche du " bleu("text en bleu") "et du" (emph "texte important")
box :test
end
Raccourcis pour certaines classes comme lettre
, méthodes pour certaines commandes.
- Introduire l’environnement abstract. Peut-être dans le chapitre « Structurer un document », dans la section sur la gestion de titre. Permet d’utiliser
\abstract
plutôt que \em
comme exemple dans le chapitre d’après sur les principes de Tex et de LaTeX
- Rajouter des tests pour les exercices.
- Tout est une expression et a une valeur.
- Toute valeur est vraie sauf
false
et nil
.