Supportnet / Forum / Anwendungen(Java,C++...)
C++ MicrosoftVisualStudio.NET System.StackOverflowException
Frage
Ich habe ein etwas längeres Programm beschrieben, daß Matritzen clusteranalytisch bearbeiten soll. Dabei simmuliere ich fehlende Werte, indem ich immer einen bestimmten Anteil der Matrixeinträge mittels Zufallszahl gleich Null setzen lasse. Also, wenn ich fünf Prozent fehlende Werte haben möchte und die Dimension der [code]Matrix n*m ist, dann (etwas vereinfacht):
g=0.05;
counter=0;
while(counter!=floor(g*n*m)){
rv1= (rand()%n)+1;
rv2= (rand()%m)+1;
if(S[rv1][rv2]!=0){ //Null repräsentiert fehlende Werte
S[rv1][rv2]=0
counter += 1;
}
}
Wenn ich dieses Programm jetzt mit m=102 und n=104 oder so laufen lasse, funktioniert alles tadellos. Wenn ich die Dimensionen aber weiter erhöhe (z.B. n=1200,m=1000), verlinkt er das Programm zunächst auch. Beim Versuch, das Programm dann rechnen zu lassen, kommt es zum ´System.StackOverflowException´. Kann das an den Zufallszahlen liegen? Wie kann ich das Programm für höhere Werte von n und m zum laufen liegen? [/code]

