Forum » Programiranje » [Python] Permutacije
[Python] Permutacije
pbutan ::
Pozdravljeni!
V pythonu bi želel napisati program, ki mi pri dani številki n vrne vse permutacije števil od 1 do n brez fiksnih točk, z metodo sestopanja oz. backtracinga. Iskal sem že možne rešitve po internetu vendar nimam dovolj izkušenj, da bi znal iz jezikov kot so java, c++ popolnoma pravilno prevesti psevdokode v Python.
Zaenkrat se še lotevam zgolj izpisa vseh permutacij
To je dosedaj moja koda, vem da pride do problemov, ko izpiše prvo končno permutacijo, toda ne vem kako nastaviti klic, da bo koda pravilno delovala naprej.
Najlepša hvala za pomoč.
V pythonu bi želel napisati program, ki mi pri dani številki n vrne vse permutacije števil od 1 do n brez fiksnih točk, z metodo sestopanja oz. backtracinga. Iskal sem že možne rešitve po internetu vendar nimam dovolj izkušenj, da bi znal iz jezikov kot so java, c++ popolnoma pravilno prevesti psevdokode v Python.
Zaenkrat se še lotevam zgolj izpisa vseh permutacij
def izpis(n): p=n*[0] return konstrukt(0,n,p) def konstrukt(poz,n,p): for st in range(1,n+1): if st not in p: p[poz]=st if poz==n-1: print p else: konstrukt(poz+1,n,p)
To je dosedaj moja koda, vem da pride do problemov, ko izpiše prvo končno permutacijo, toda ne vem kako nastaviti klic, da bo koda pravilno delovala naprej.
Najlepša hvala za pomoč.
krneki0001 ::
Sicer je v ruby-ju, ampak je zelo podobno pythonu
###### '0123' ==> '1234' def conv(base,s) s.split('').map {|c| (c.to_i(base)+1).to_s(base+1)} end def permutation(n) num=(n**n) - 1 (0..num).to_a.map do|u| sn = u.to_s(n) str =sn.rjust(n,'0') conv(n,str) end end permutation(ARGV[0].to_i).each { |i| p i }
Asrock X99 Extreme 4 | Intel E5-2683V4 ES | 64GB DDR4 2400MHz ECC |
Samsung 250GB M.2 | Asus 1070 TI | 850W Antec | LC Tank Buster
Samsung 250GB M.2 | Asus 1070 TI | 850W Antec | LC Tank Buster
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | program, ki ti najde vse kombinacije črk oz. številk, ki mu jih podaš (strani: 1 2 )Oddelek: Programiranje | 41957 (6649) | XyNOBvxWVJ |
» | Python - pomoč (strani: 1 2 3 )Oddelek: Programiranje | 18151 (8899) | black ice |
» | [c++] nalogeOddelek: Programiranje | 6237 (4777) | technolog |
» | [Python] Domači nalogiOddelek: Programiranje | 3082 (1972) | ragezor |
» | PHP ASPOddelek: Izdelava spletišč | 3051 (2376) | MrBrdo |