Advertisement
Guest User

Untitled

a guest
Mar 24th, 2019
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.66 KB | None | 0 0
  1. def fatorial(numero):
  2.  
  3.         calc = 1
  4.  
  5.         for i in range(numero):
  6.  
  7.                 calc *= numero
  8.                 numero -= 1
  9.  
  10.         return calc
  11.  
  12. def gerarAnagrama(qnt_numeros, numero):
  13.  
  14.         import random as r
  15.        
  16.         verificar, permutacao, numeroLista = [], '', list(str(numero))
  17.        
  18.         for k in range(qnt_numeros):
  19.  
  20.                 number = r.randint(0, len(numeroLista) - 1)
  21.  
  22.                 while True:
  23.  
  24.                         number = r.randint(0, len(numeroLista) - 1)
  25.  
  26.                         if not number in verificar or len(verificar) == qnt_numeros: break
  27.  
  28.                 verificar.append(number)
  29.                 permutacao += numeroLista[number]
  30.  
  31.         return permutacao
  32.  
  33. def anagrama(numero, df = ''):
  34.  
  35.         """
  36.        df - parametro que define o que você quer visualizar
  37.  
  38.        df == 'min': menor anagrama
  39.        df == 'max': maior anagrama
  40.        df == (vazio): todos os anagramas
  41.        """
  42.  
  43.         numero = str(numero)
  44.        
  45.         qnt_numeros, permutacoes = len(numero), set()
  46.  
  47.         for i in range(fatorial(qnt_numeros)):
  48.  
  49.                 permutacao = gerarAnagrama(qnt_numeros, numero)
  50.  
  51.                 # while permutacoes.count(permutacao) > 0:
  52.  
  53.                 #         permutacao = gerarAnagrama(qnt_numeros, numero)
  54.  
  55.                 #         permutacao = str(permutacao)
  56.  
  57.                 #         if not permutacao in permutacoes: break
  58.                    
  59.                 permutacoes.add(permutacao)
  60.                
  61.         if df is 'max': return int(max(permutacoes))
  62.         if df is 'min': return int(min(permutacoes))
  63.  
  64.         return permutacoes
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement