Jump to content

Rodar números entre si


qwerty
 Share

Recommended Posts

Assim de repente só me estou a lembrar de uma coisa.

combinacoes = []

for i in "345":
for k in "345":
	for l in "345":
		combinacoes.append(i+k+l)
		combinacoes.append(i+l+k)
		combinacoes.append(i+k+k)
		combinacoes.append(i+l+l)
		combinacoes.append(k+i+l)
		combinacoes.append(k+i+k)
		combinacoes.append(l+i+k)
		combinacoes.append(l+i+l)
		combinacoes.append(k+l+i)
		combinacoes.append(k+k+i)
		combinacoes.append(l+k+i)
		combinacoes.append(l+l+i)

Vais é ficar com números repetidos, depois tens que os remover.

as_verdadeiras = []

for i in combinacoes:
if i not in as_verdadeiras:
	as_verdadeiras.append(i)


print as_verdadeiras
['333', '334', '343', '344', '433', '434', '443', '335', '353', '355', '533', '535', '553', '345', '354', '435', '534', '453', '543', '444', '455', '545', '554', '445', '454', '544', '555']

Não me responsabilizo por qualquer dano ocorrido no seguimento dos meus conselhos. Prontos, a minha pessoa está oficialmente protegida legalmente 😄

Link to comment
Share on other sites

Por acaso estava a pensar que seria possível fazer para qualquer valor se se utilizasse funções recursivas, mas não estava a ver como o fazer.

Não me responsabilizo por qualquer dano ocorrido no seguimento dos meus conselhos. Prontos, a minha pessoa está oficialmente protegida legalmente 😄

Link to comment
Share on other sites

Penso que esse código até pode ficar mais "bonito" dando uso a listas por compreensão em vez dos ciclos encadeados.

... pelo menos em Haskell, mas penso que em Python também seja, visto o sistema ser muito parecido.

"Give a man a fish and he will eat for a day; Teach a man to fish and he will eat for a lifetime. The moral? READ THE MANUAL !"

Sign on a computer system consultant's desk

Link to comment
Share on other sites

Não percebi. Acho que é indiferente se aceitam-se repetidos ou não. Em ambos os casos dá para fazer por funções recursivas ou por listas por compreensão. Porque aliás, nas listas por compreensão, internamente o seu funcionamento é à base de recursividade...

Edit: Adicionei uma entrada na wiki com a transcrição em Haskell com o uso de listas por compreensão. Se alguém tiver interessado em passar para Python está a vontade...

"Give a man a fish and he will eat for a day; Teach a man to fish and he will eat for a lifetime. The moral? READ THE MANUAL !"

Sign on a computer system consultant's desk

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.