Hey mensen, ik heb over internet gezocht, de search gebruikt, en vele uren zelf geprobeerd deze klote error te verhelpen. Maar goed:
Als ik een permutatie van het woord voet wil dan krijg ik dit:
$ ipi Permutatie
Geef het woord waarvan u de permutaties wilt zien
voet
Alle permutaties in alfabetische volgorde:
eotv
oetv
teov
veot
de bedoeling is natuurlijk dat ik alle permutaties krijg.
Mijn
Nog wat aan de rommelige kant mjah. Na verschillende testjes (wat out.printjes her en der) blijkt dus dat hij in permuteer de else kant gewoonweg niet hoger dan i=0 komt (wat er dus voor zou moeten zorgen dat ie andere letters ook omwisselt per hoogte van de recursie). Nadat ie 1 permutatie heeft toegevoegd gaat ie dus terug naar beginpermutatie (diens for) zelf ipv de bedoeling: permuteer (diens for).
ik heb geprobeerd het ook als new object te laten verwijzen maar dan krijg ik antwoorden als etoeoveovoeo
. Google levert niks op en ik vraag me af wat ervoor zorgt dat ie de andere for van permutatie skipt 
Iemand?
Alvast bedankt.
Als ik een permutatie van het woord voet wil dan krijg ik dit:
$ ipi Permutatie
Geef het woord waarvan u de permutaties wilt zien
voet
Alle permutaties in alfabetische volgorde:
eotv
oetv
teov
veot
de bedoeling is natuurlijk dat ik alle permutaties krijg.
Mijn
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| void beginpermutatie(StringBuffer woord) {
for (int i=0; i < woord.length(); i++) {
StringBuffer copyWoord = new StringBuffer(woord);
StringBuffer begin = new StringBuffer(copyWoord.substring(i, i+1));
StringBuffer eind = copyWoord.deleteCharAt(i);
permuteer(begin, eind);
}
}
public void permuteer(StringBuffer begin, StringBuffer eind) {
if (eind.length() <= 1) {
StringBuffer permutatieBuffer = begin.append(eind);
String permutatie = permutatieBuffer.toString();
if (permutationArray.checkPermutatie(permutatie) == false) {
permutationArray.voegToe(permutatie);
}
} else {
for (int i=0; i < eind.length(); i++) {
StringBuffer tempEind = eind;
StringBuffer newBegin = begin.append(tempEind.charAt(i));
StringBuffer newEind = tempEind.deleteCharAt(i);
permuteer(newBegin, newEind);
}
}
} |
Nog wat aan de rommelige kant mjah. Na verschillende testjes (wat out.printjes her en der) blijkt dus dat hij in permuteer de else kant gewoonweg niet hoger dan i=0 komt (wat er dus voor zou moeten zorgen dat ie andere letters ook omwisselt per hoogte van de recursie). Nadat ie 1 permutatie heeft toegevoegd gaat ie dus terug naar beginpermutatie (diens for) zelf ipv de bedoeling: permuteer (diens for).
ik heb geprobeerd het ook als new object te laten verwijzen maar dan krijg ik antwoorden als etoeoveovoeo
Iemand?
Alvast bedankt.