Bonjour,

j'utilise cet algo pour générer des combinaisons de caractères avec répétition.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
int8 matrix[8] = {'a','a','a','a','a','a','a','a'};
int8 upperBound = 'z';
int8 lowerBound = 'a';
int8 width = 8;
int8 column = 0;
uint64 iterations = 3000;
 
 
 
matrix[0]--;
while(iterations != 0)
{
	for(column = 0; column < width; column++)
	{
		if(matrix[column] < upperBound)
		{
			++matrix[column];
			break;
		}
		matrix[column] = lowerBound;	
	}
	--iterations;
}
Ce dernier fonctionne correctement. Cependant le processeur sur lequel il tourne gère très mal la prédiction des branches logiques. Et donc, tel quel il ne peut pas dépasser les ~350'000'000 itérations / seconde.

Existe-il une version plus predictible de cet algo? Quel nom puis-je utiliser pour étayer mes recherches google (à part algorythme combinatoire / permutatif)? -je n'y connais rien en math

Merci pour votre aide.