Bonjour,
j'utilise cet algo pour générer des combinaisons de caractères avec répétition.
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.
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; }
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.
Partager