Demandez, en général, je réponds.
J'aime partager, pas mal de choses...
C U bIAtches
Rien que pour le titre, ça vaut un point... tu devrais postuler chez BFM, eux aussi, ils rament...
Bien écrit... Merci de faire écho à l'angoisse qui n'est plus un rêve, ni un cauchemar, mais un triste constat.
@Myosotys: Pas besoin de boucler sur les caractères de la chaîne puisque si le nombre de caractères restant à parcourir vaut le nombre de 1 à insérer dans la chaîne, on remplit la fin de la chaîne et on sort de la fonction.
@Oznek: edit sur mon algo (écrit à la vasvite et avec un téléphone mobile) :
NombreDeUn = 0
NombreDeCaracteresRestants = 8
CaractereCourant = 0
Tant que (NombreDeUn != n)
Si nombreDeCaracteresRestants = n
Remplir toute la chaine avec des 1
Retourner la chaine
Sinon
Si random () < 1/n
Remplir le caractère courant avec un 1
NombreDeUn ++
FinSi
FinSi
NombreDeCaracteresRestants --
CaractereCourant ++
FinTantQue
Retourner la chaîne
J'avais mal placé mon second FinSi, effectivement, on risquait une boucle infinie.
Mais là, plus de souci et le premier test assure une ré"solution rapide siu les probabilités n'ont pas été avec nous.
Enfin, c'est en temps linéaire sur la taille de la chaîne supposée fixée à 8 (n variant entre 0 et 8), donc, c'est bien assimilable à du temps constant (O(8)).
En langage pseudo algorithmique et en temps constant :
NombreDeUn = 0
NombreDeCaracteresRestants = 8
Tant que (NombreDeUn != n)
Si nombreDeCaracteresRestants = n
Remplir toute la chaine avec des 1
Sinon
Si random () < 1/n
Remplir le caractère courant avec un 1
NombreDeUn ++
FinSi
NombreDeCaracteresRestants --
FinSi
FinTantQue
Du coup, programmer en cpm et en basic, en logo, puis en asm 68000... Ça avait la classe !
@Makise: courir après des points, courir après de la thune, courir après du sexe... On est tous des hamsters ? C'est quand même bien pathétique tout ça...
@Makise: en même temps, modifier un exif, c'est à la portée de n'importe quel utilisateur cherchant "modifier exif" sur Google...