Non sono in grado di comprendere un algoritmo discusso nel TAOCP Volume 1; La sezione 1.3.3 denominata "Algorithm A" è stata definita "Moltiplicazioni delle permutazioni in forma ciclica", mentre è stata confrontata con l'esempio indicato nella pagina successiva.
Il passo che non è chiaro è menzionato nelle file 8th e 9th; come può essere il valore "CURRENT" diventa "g" dopo l'iterazione precedente in cui il valore CURRENT era "d"?
Si prega di fare riferimento a "The Art of Computer Programming Volume 1" di Knuth per ulteriori dettagli (sezione 1.3.3). Contiene la descrizione dettagliata di questo algoritmo.
Algoritmo dettagliato:
Algoritmo A (Molteplici permutazioni in forma di ciclo).
Questo algoritmo prende un prodotto di cicli, come (6), e calcola la permutazione risultante in forma di un prodotto di cicli disgiunti. Per semplicità, la rimozione dei cicli singleton non è descritto qui; sarebbe un'estensione abbastanza semplice dell'algoritmo. Mentre questo algoritmo viene eseguito, successivamente "taggano" gli elementi dell'input formula; cioè, contrassegniamo in qualche modo quei simboli della formula di input che hanno stato elaborato.
- A1. [Primo passaggio.] Contrassegna tutte le parentesi e sostituisci ciascuna parentesi destra con una copia taggata dell'elemento che segue la parentesi sinistra corrispondente. (Vedere l'esempio nella Tabella 1.)
- A2. [Apri.] Cercando da sinistra a destra, trova il primo elemento senza tag del ingresso. (Se tutti gli elementi sono taggati, l'algoritmo termina.) Imposta START uguale ad esso; mostra una parentesi chiusa; emettere l'elemento; e taggalo.
- A3. [Vedi CORRENTE.] Imposta CORRENTE uguale all'elemento successivo della formula.
- A4. [Formula di scansione.] Procedere a destra fino a raggiungere la fine del formula, o trovare un elemento uguale a CORRENTE; in quest'ultimo caso, taggalo e tornare al punto A3.
- A5. [CURRENT = START?] Se CURRENT i- START, invia CURRENT e torna a passo A4 ricominciare a sinistra della formula (continuando così il sviluppo di un ciclo nell'output).
- A6. [Chiudi.] (È stato trovato un ciclo completo nell'output.) Emettere a destra parentesi e tornare al punto A2.