2016-04-10 8 views
0

Ich bin ein bisschen vertraut mit was Subsets sind, aber ich habe eine harte Zeit zu verstehen, wie die unten zwei Teilmenge bekam? Kann jemand darauf hinweisen, wie wir nur zwei Teilmengen bekommen haben? Ich dachte nur, dass es mehr Untermengen haben würde.Eine Teilmenge in Java finden

Eine Zahl, m, ist definiert als die Größe einiger Teilmengen S von A, wobei jedes Element einen ununterbrochenen Bereich von ganzen Zahlen abdeckt; das heißt, wenn Sie die Elemente in S sortieren würden, ist der Unterschied zwischen irgendwelchen Elementen j und j + 1 entweder 0 oder 1. Zum Beispiel gibt A = {5, 4, 4, 8, 8} uns eine Teilmenge {4, 4, 5} und {8,8}; Diese Teilmengen haben m-Werte von 3 bzw. 2.

+1

Haupt Frage: Wenn Sie denken, es sollte mehr Teilmengen sein, was andere Teilmengen denken Sie, sollte es sein? Zweite Frage: Was hat das mit Java zu tun? (Ich verstehe, dass Sie dafür vielleicht ein Java-Programm schreiben müssen, aber bis jetzt haben Sie keine Programmierfrage gestellt). – ajb

+0

Bitte beachten Sie auch, dass in Mathe ein "Set" niemals doppelte Elemente enthält. Ein Element ist entweder in einer Menge oder nicht; es ist nie mehrfach vorhanden. Das sieht mehr wie ein [Multiset] aus (https://en.wikipedia.org/wiki/Multiset). – ajb

Antwort

1

Die Kernaussage ist:

die Differenz zwischen beliebigen Elementen j und j + 1 entweder 0 oder 1

So zum

A = {5, 4,4,8,8}

A ist sortiert und wie Sie die Elemente durchlaufen, wenn das aktuelle Element und das nächste Element (j und j + 1) sind innerhalb einer Differenz von 0 oder 1 voneinander, sie gehören zu der Teilmenge.

Daher wird, wie Sie durchqueren:

A[0]=5 and A[1] = 4 : difference 1 - add to subset {5,4} 
A[1]=4 and A[2]= 4 : difference 0 - add to subset {5,4,4} 

A[2]=4 and A[3] = 8: difference is 4 - Start new subset {8} 
A[3] = 8 and A[4] = 8] : difference is 0 - Add to subset {8,8} 
+0

Sir, du bist großartig. Vielen Dank für die Klarstellung, ich habe mich schon eine Weile aufgelegt. – sammyb123

Verwandte Themen