Markus**: nicht diese Element aus der Menge X

Beitrag lesen

Hallo liebes Forum,

ich versuche im Moment, (mal wieder) eine Funktion zu schreiben, die mir gewissermaßen ein negiertes Ergebnis einer Menge liefert.

Beispiel: nicht 1,2,6 und 8 aus 0 bis 10.
sollte ja ergeben: 0,3,4,5,7,9,10

Mein bisheriger Ansatz (Perl):

  
my @a=(0..12);		#ursprungsmenge (0 bis 12)  
my $i=0;  
my @b=(2,4,6,9,11);	#mag ich nicht haben  
while ($#b >= 0) {  
	splice(@a,$b[0]-$i,1);  
	shift(@b);  
	$i++;}  
  
print @a;	#@a enthält ursprungsmene ohne @b  

Das Beispiel wird natürlich nur unter best. Voraussetzungen das gewünschte Ergebnis liefern. Z.B. muß das Array b nach Größe aufsteigend sortiert sein und im idealfall auch bestandteil der Menge a sein, etc.

Ich denke mal, die Problematik hat jeder schonmal gehabt, nur frage ich mich, ob es nicht vielleicht besser u.v.a. effizienter lösbar ist.
Hat jemand Vorschläge oder Ansätze, wie man dieses lösen kann?

Grüße, Markus**