Zdravím vás,
potřebovala bych poradit jak najít rekurzivní algoritmus, který v dané čtvercové matici čísel vybere všechny kombinace tak, že z každého řádku vybere právě jedno číslo, přičemž se nesmí vybírat v dalším řádku číslo s indexem sloupce stejným jako index sloupce již vybraného čísla v některém z předchozích řádků. (tzn. že v každém výběru/kombinaci bude právě tolik čísel jako je počet řádků/sloupců v matici a nesmí se vybrat čísla která leží v matici "pod sebou").
Mockrát předem děkuji, trápím se s tím už delší dobu.
Fórum › Java
Rekurzivní nalezení kombinací v poli
Tebe v podstatě nezajímá co je v té matici, chceš najít všechny permutace indexů.
Příklad jak to třeba udělat rekurzivně: Budeš mít pole velikosti n. Do něj si budeš značit, jestli jsi už daný index použila, na začátku nebude použito nic. Rekurzivně pak budeš přidávat vždy nový index a jakmile dojdeš na konec, tak si jej zapamatuješ.
Pseudokód(ne tak úplně ;-):
n = 4
pouzite = n * [False]
def vsechnyPermutace(permutace, delka):
global n, pouzite
for j in range(n):
if pouzite[j]:
continue
else:
pouzite[j] = True
vsechnyPermutace(permutace+[j], delka+1)
pouzite[j] = False
if n == delka:
print permutace
Místo vypsání permutace ty budeš chtít vzít si prvky, které budou v matici na pozicich m[i][permutace[i]].
Zjistit počet nových příspěvků
Přidej příspěvek
Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 31 hostů
Podobná vlákna
Výpis kombinací čísel za podmínky... — založil PetrP
Rekurzivní výpis — založil Suny
Rekurzivní funkce — založil Philipsis
Rekurzivní metoda — založil Nefaritus
Rekurzivní funkce -faktorial — založil George5
Moderátoři diskuze