// ---------------------------------------------------------------------- // Manipulation des fonctions d'asssignation // Rappel : g est une fonction de {0, 1, 2, 3, 4} dans {0, 1, 2, 3, 4} // si g(i) = x_i, on code g par l'entier qui s'écrit en base 5 // x_4 x_3 x_2 x_1 x_0 // on a donc besoin d'une fonction qui renvoit, étant donné un entier // g, une valeur x_i : coef_g_no_i(g,i) // on a aussi besoin de pouvoir modifier un coefficient de g (ie // imposer pour un i que g(i) = x) : fixe_g_no_i(g,i,v) int coef_g_no_i(int g, int i) { int k, q ; for (k=4 ; k>=i ; k--) { q = g / (int) pow(NB_SYMBOLES,k) ; g = g % (int) pow(NB_SYMBOLES,k) ; } return q ; } int fixe_g_no_i(int g, int i, int v) { int c = coef_g_no_i(g, i) ; return g + (v - c) * (int) pow(NB_SYMBOLES,i) ; }