- S^3 = {000,001,010,011,100,101,110,111}
Bueno, ahora vayamos al código, el script es el siguiente:
#!/usr/bin/python
def main():
r = int(raw_input("Introduzca el numero de simbolos: "))
S = [""] * r
for i in xrange(0,r):
S[i] = raw_input("Simbolo-> ")
n = int(raw_input("Introduzca el numero de combinaciones: "))
T = [0] * n
C = [0] * n
Aux = [0] * n
for i in xrange(0,n):
T[i] = r**((n-i)-1)
# print S
# print T
# print "_______________"
for i in xrange(0,r**n):
res = ""
for j in xrange(0,n):
res = res + S[C[j]]
Aux[j] = Aux[j] + 1
if Aux[j] == T[j]:
C[j] = C[j] + 1
C[j] = (C[j]) % r
Aux[j] = 0
print res
if __name__ == "__main__":
main()
que el cambio de símbolos se lo realiza cada vez que llega a un tope, en
este caso los topes están generados por la formula:
- r ^ ((n-i)-1) ; i = 0,...,n-1
Bueno, obviamente, no creo que este script sea el más óptimo, ya que existen
varias formas de realizar esta misma tarea de mejor forma, con el uso de
estructuras de datos, etc. Espero que les sea de utilidad o como un script
que les de la idea para generar uno mejor.
Saludos
Muchas gracias,buscaba algo parecido a esto.
ResponderEliminar