Codice Gray-[C]

marcomezzolla
Salve ragazzi, dovrei implementare un algoritmo in C del Codice Gray utilizzando la ricorsione ,ma non so proprio come procedere... Inoltre la traccia chiede di patire necessariamente da un vettore allocato dinamicamente e inizializzato a 0 di dimensione pari al numero di bit inserito dall'utente.. Es. n=3 , v=0,0,0.
Questo è il codice gray:
Codice Gray
a 2 bit
00
01
11
10
Codice Gray
a 3 bit
000
001
011
010
110
111
101
100
Codice Gray
a 4 bit
0000
0001
0011
0010
0110
0111
0101
0100
1100
1101
1111
1110
1010
1011
1001
1000
Codice Gray
a 5 bit
00000
00001
00011
00010
00110
00111
00101
00100
01100
01101
01111
01110
01010
01011
01001
01000
11000
11001
11011
11010
11110
11111
11101
11100
10100
10101
10111
10110
10010
10011
10001
10000
L'utente dovrebbe inserire un numero di bit e visualizzare il corrispondente codice Gray...
Grazie mille!

Risposte
apatriarca
Qual'è il problema? Nella logica da usare per generare tale sequenza o nella scrittura del codice?

marcomezzolla
"apatriarca":
Qual'è il problema? Nella logica da usare per generare tale sequenza o nella scrittura del codice?




Purtroppo un po' in entrambe le cose :cry:

apatriarca
In modo ricorsivo l'idea è quella di definire la sequenza di lunghezza \((n-1)\) e ripeterla due volte, la prima ponendo uno zero prima di ogni valore della sequenza e poi ponendoci un uno. L'idea è quella di avere un array di lunghezza \(n\). Setti il primo valore della sequenza a zero e richiami quindi la funzione sul sottoarray di lunghezza \(n-1\). Quando questa chiamata ricorsiva raggiunge la fine dell'array stampa l'intero array e torna indietro alla funzione chiamante. Una volta finito un ciclo parti con il secondo ciclo settando a uno il primo elemento del tuo array.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.