Jump to content
deserty

Combinatii numere

Recommended Posts

Posted

Care ma poate ajuta cu un script care sa-mi genereze de exemplu toate combinatile de 3 numere din 5 cifre sa spunem ?

Sa spunem ca am :

$numbers="1 3 4 5 9";

Si sa-mi genereze toate combinatile posibile de cate trei numere din numerele din variabila.

ex : 134, 131, 139 etc .

As dori sa pot pune in variabila cate numere vreau de la 1 la 9 ( ex: 1 2 3, alt ex : 1 2 3 4 5 ) inclusiv toate numerele.

Sper ca m-am exprimat corect.

Posted

Se pare ca am pus problema gresit.

Deci daca am numerele 1,2,3,4

Vreau sa-mi genereze 123, 124, 134, 234.

Deci sa nu se repete acceasi cifra de 2 ori in acelasi numar.

Si nici 123 si 132 sau 134 si 143 etc.

Practic sunt aceleasi numere doar scrise intr-o alta ordine.

Posted
Si sa-mi genereze toate combinatile posibile de cate trei numere din numerele din variabila.ex : 134, 131, 139 etc .

Nu am inteles un cacat din ce vrei. Si in exemplul dat de tine se repeta 1 in 131...si cum cacat 134 e acelasi lucru cu 143, dar in alta ordine, pai da, este, dar asta ineamna combinare.... Fi mai explicit.

Posted

Am explicat in al doilea post ce vreau. Si am specificat ca in primul post am pus gresit problema.

Nu stiu daca este exact combinare pentru ca nu vreau sa se repede acceasi cifra de 2 ori in acelasi numar.

Am dat un exemplu cat se poate de explicit.

Deci daca am numerele 1,2,3,4

Vreau sa-mi genereze 123, 124, 134, 234.

Posted (edited)

Judecand dupa ultimul post sunt aranjamente de N luate cate K (N!/(N-K)!), fiindca vrea si 123 si 132 (a zis sa nu se repete cifra, atat), in cazul combinarilor astea 2 numere ar fi fost acelasi lucru, deoarece s-ar fi plecat mereu de la pozitia din dreapta ultimei alese. Prin combinatii se referea la numarul total de functii adica N^K unde pentru fiecare pozitie se alege un numar indiferent daca a mai fost ales sau nu si in cazul asta se repetau numere.

nrs = sorted([1, 2, 3, 4])
K = 3
sol = []


def gen(pos):
if pos == K:
print "".join(str(x) for x in sol)
return
for x in nrs: # si daca vrei aranjamente
if x not in sol and (pos == 0 or x > sol[pos - 1]): # scoti and-ul
sol.append(x)
gen(pos + 1)
sol.pop()


gen(0)

Edited by cmiN
Posted (edited)

Tot genereaza si 123 si 132.

Eu nu vreau asta.

123,132,321,312,213,231 - sunt aceleasi numere scrise doar sub o alta forma.

LE : Merge.

Merci cmiN.

Python nu stiu deloc, scriptul ruleaza, e ok.

Insa as dori daca mi l-ar face cineva in php.

Edited by wildchild

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...