recursieve algorithme zonder dubbelen

Pagina: 1
Acties:

  • Theswitch
  • Registratie: Juli 2000
  • Laatst online: 21:59
Stel je hebt de volgende getallenmatrix:
code:
1
2
3
4
1 2 3 4 5 6
5 8 4 5 6 7
3 2 4 5 6 2
3 4 6 7 8 5

Ik wil hiervoor een recursief algorithme maken, die alle mogeljike combinaties geeft van figuren in deze matrix met unieke getallen.
b.v.:
code:
1
2
3
XX
X
X

Deze bevat dan de getallen 1 2 en de 5 en 3.
Mijn algorithme begint bij het begin (linksboven) en kijkt dan welke kanten die opkan, en dan weer proberen. Nu vind ik alleen niet figuren als:
code:
1
2
3
X.X
XXX
.X.

(waar de 1,3 5,8,4 en 2 inzitten).

Als ik een algo maakt die iedere keer bij elk blokje gaat kijken welke stappen mogelijk zijn, krijg ik enorm veel dubbelen, wat ik niet wil hebben. Iemand een leuk ideetje hiervoor?

  • Apollo_Futurae
  • Registratie: November 2000
  • Niet online
Mijn algorithme begint bij het begin (linksboven)
moet het getal linksboven er altijd in zitten?

Pas de replâtrage, la structure est pourrie.


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 28-08 12:00

Janoz

Moderator Devschuur®

!litemod

Een recursiefe methode is idd links boven beginnen. Vervolgens roep je de functie weer 2 keer aan op de rest van de matrix (dus exclusief linksboven). 1x neem je de 2 wel mee in je figuur en 1x niet. Bij elke volgende stap kijk je of het huidige getal al in het figuur voorkomt. Als dit wel het gevalis ga je maar 1 aanroep doen (die zonder getal) en anders weer 2. Op die manier krijg je alle mogelijke figuren. Bedenk wel dat dit algoritme exponentieel toeneemt en er bij grote matrices al snel een stack overflow optreed :).

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'