Rekurzivní nalezení kombinací v poli – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Rekurzivní nalezení kombinací v poli – Java – Fórum – Programujte.comRekurzivní nalezení kombinací v poli – Java – Fórum – Programujte.com

 

mabyna
~ Anonymní uživatel
1 příspěvek
25. 10. 2009   #1
-
0
-

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.

Nahlásit jako SPAM
IP: 87.249.133.–
H4wk.cz0
Newbie
30. 10. 2009   #2
-
0
-

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]].

Nahlásit jako SPAM
IP: 90.180.131.–
http://ksp.mff.cuni.cz - Nauč se opravdu programovat
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žit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 31 hostů

Podobná vlákna

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

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý