Hallo zusammen,
nach langer Suche habe ich für mein Problem endlich einen Algorithmus gefunden. Allerdings ist das Buch von 78 und Code sowie Pseudocode in FORTRAN.
Es geht darum eine n-elementige Menge {1,2,…,n} in alle möglichen Partitionen zu zerlegen.
Es sind nur nur 26 Zeilen. Vieleicht kann einer von den Profis entweder:
eine c-Umwandlung
eine java-Umwandlung
oder einen verständlicheren Pseudocode angeben?
PseudoCode:
http://img146.imageshack.us/img146/8693/pseudofortra…
Variablen:
http://img181.imageshack.us/img181/9577/varfortrannl…
Code:
SUBROUTINE NEXEQU(N,NC,P,Q,MTC)
INTEGER P(N), Q(N)
LOGICAL MTC
IF(MTC) GO TO 20
10 NC=1
DO 11 I=1, N
11 Q(I)=1
P(1)=N
60 MTC=NC.NE.N
RETURN
20 M=N
30 L=Q(M)
IF(P(L).NE.1) GO TO 40
Q(M) = 1
M=M-1
GO TO 30
40 NC=NC+M-N
P(1)=P(1)+N-M
IF(L.NE.NC) GO TO 50
NC=NC+1
P(NC)=0
50 Q(M)=L+1
P(L)=P(L)-1
P(L+1)=P(L+1)+1
GO TO 60
END
Vielen Dank, falls sich jemand erbarmt und mir weiter hilft.
Gruß
Joerg