Algoritmo da adição
Este algoritmo da adição entre números representados a partir do sistema de numeração romano tem como finalidade obter somas do tipo
a1+a2+⋯+an, sendo a1,a2,⋯,an números naturais não nulos.
A versão apresentada tem cinco etapas e descreve o processo para somas com duas parcelas, mas pode ser facilmente generalizada para soma com mais parcelas.
O algoritmo
Etapa 1: Descompactar todas as notações subtrativas de cada uma das parcelas a serem somadas.
- Por exemplo: transformar IV em IIII; transformar IX em VIIII; transformar XL em XXXX; etc.
Etapa 2: Agrupar todos os símbolos de mesmo valor, independente da parcela em que estejam.
- Por exemplo: (CCCCC); (XXX); (IIII); (VVVVV); (LL); etc.
Etapa 3: Se necessário, organizar todos os símbolos em ordem, da esquerda para a direita, com os símbolos de maior valor à esquerda.
- (M⋯M); (D⋯D); (C⋯C); (L⋯L); (X⋯X); (V⋯V); (I⋯I).
Etapa 4: Começando pelo lado direito, agrupar símbolos iguais que possam ser substituídos por um único símbolo, de maneira que seja mantida a soma dos valores dos símbolos que serão substituídos, e fazer as respectivas substituições. (Mantenha sempre a ordem estabelecida pela Etapa 3.)
- Por exemplo: transformar IIIII em V; transformar XXXXX em L; transformar CCCCC em D; etc.
Etapa 5: Sempre que necessário, compactar os símbolos finais obtidos pelas sucessivas aplicações da Etapa 4, utilizando as regras subtrativas.
Alguns exemplos
Exemplo 1: CCXIX+XLVII
Etapa 1: CCXIX+XLVII↦CCXVIIII+XXXXVII
Etapa 2: (CC)(XXXXX)(VV)(IIIIII)
Etapa 3: (CC)(XXXXX)(VV)(IIIIII)
Etapa 4: (CC)(XXXXX)(VV)(IIIIII)↦(CC)(XXXXX)(VVV)I
(CC)(XXXXX)(VVV)I↦(CC)(XXXXXX)VI
(CC)(XXXXXX)VI↦(CC)(L)XVI
(CC)LXVI
Etapa 5: CCLXVI
Assim, CCXIX+XLVII=CCLXVI
Exemplo 2: DLXIII+XCVI
Etapa 1: DLXIII+XCVI↦DLXIII+LXXXXVI
Etapa 2: (D)(LL)(XXXXX)(V)(IIII)
Etapa 3: (D)(LL)(XXXXX)(V)(IIII)
Etapa 4: (D)(LL)(XXXXX)(V)(IIII)↦(D)(LLL)(V)(IIII)
(D)(LLL)(V)(IIII)↦(D)(C)LV(IIII)
(D)CLV(IIII)
Etapa 5: DCLVIIII↦DCLIX
Logo, DLXIII+XCVI=DCLIX
Exemplo 3: CCXV+CCCXXXIII+LXXIX
Etapa 1:
CCXV+CCCXXXIII+LXXIX↦CCXV+CCCXXXIII+LXXVIIII
Etapa 2:
(CCCCC)(L)(XXXXXX)(VV)(IIIIIII)
Etapa 3:
(CCCCC)(L)(XXXXXX)(VV)(IIIIIII)
Etapa 4:
(CCCCC)(L)(XXXXXX)(VV)(IIIIIII)↦(CCCCC)(L)(XXXXXX)(VV)VII
(CCCCC)(L)(XXXXXX)(VVV)II↦(CCCCC)(L)(XXXXXX)XVII
(CCCCC)(L)(XXXXXXX)VII↦(CCCCC)(L)LXXVII
(CCCCC)(LL)XXVII↦(CCCCC)(C)XXVII
(CCCCCC)XXVII↦DCXXVII
DCXXVII
Etapa 5: DCXXVII
Logo, CCXV+CCCXXXIII+LXXIX=DCXXVII
Conferindo: Vocês podem verificar se as contas estão corretas, convertendo os valores para a notação regular:
- CCXIX+XLVII=CCLXVI↦219+47=266 ✓
- DLXIII+XCVI=DCLIX↦563+96=659 ✓
- CCXV+CCCXXXIII+LXXIX=DCXXVII↦215+333+79=627 ✓