ok zaczne od tego losowanie jest cykliczne i wyglada tak
private void losujZmienne()
{
Random losuj = new Random();
double we1 = losuj.Next(int.Parse(x1Min.Value.ToString()), int.Parse(x1Max.Value.ToString()));
double we2 = losuj.Next(int.Parse(x2Min.Value.ToString()), int.Parse(x2Max.Value.ToString()));
We1.Text = we1.ToString();
We2.Text = we2.ToString();
if (_pozycja == 0 && wektor.Text == "0")
{
for (int i = 0; i < Convert.ToInt32(ileNeuronow.Value); i++)
{
temp[i, 0] = i + 1;
temp[i, 1] = losuj.Next(int.Parse(w1Min.Value.ToString()), int.Parse(w1Max.Value.ToString()));
temp[i, 2] = losuj.Next(int.Parse(w2Min.Value.ToString()), int.Parse(w2Max.Value.ToString()));
temp[i, 3] = odleglosc(we1, we2, temp[i, 1], temp[i, 2]);
}
}
private double odleglosc(double x1,double x2,double w1, double w2)
{
double wynik = Math.Sqrt(Math.Pow((x1-w1),2)+ Math.Pow((x2-w2),2));
return wynik;
}
gdy neuron sie uczy odpalana jest funkcja rekurencyjna
do
{
losujZmienne();
//MessageBox.Show(We1.Text + " " + We2.Text);
for (int i = 0; i < Convert.ToInt32(ileNeuronow.Value); i++)
{
we1 = double.Parse(We1.Text);
we2 = double.Parse(We2.Text);
temp[i, 0] = i + 1;
if (i + 1 != int.Parse(wektory[_pozycja - 1].Zwyciesca.Replace("Neuron", "")))
{
temp[i, 1] = wektory[_pozycja - 1].Neurony[i].W1;
temp[i, 2] = wektory[_pozycja - 1].Neurony[i].W2;
}
else
{
temp[i, 1] = wyliczWezly(true, i);
temp[i, 2] = wyliczWezly(false, i);
}
temp[i, 3] = odleglosc(we1, we2, temp[i, 1], temp[i, 2]);
}
zmienStatus();
dodajDane();
_cykl++;
} while (_cykl < Convert.ToInt32(NUD.Value));
<ort>otóż </ort>problem jest w momencie gdy odznaczam // w jednym z tych dwóch miejsc przed MessageBox.Show... wyobraz sobie ze mam rowniez tabele przebiegow wszystko dziala pięknie i szybko, ale z malym wyjątkiem podczas pierwszego cyklu losuje wszystkie zmienne ok jest dobrze, drugi cykl juz nie polega na losowaniu o opiera sie na wczesniejszych obliczeniach ok wszystko pieknie, ale w drugim cyklu powinny mi sie zmienic wejscia x1 i x2 ktore losuje w funkcji losuj i to tez dziala, ale w tabeli pokazuja mi sie wkolo te same x1 i x2 z drugiego cyklu. Gdy wstawie MessageBox wtedy co cykl musze klikac ok i jestem pewien ze sie zmieniaja, zagladam do tablicy przebiegu i wszystko sie pozmienialo. Tzn wszystko dziala tak jak powinno łącznie z wejsciami. A gdy MessageBox nie ma wejscia sa stale. Czyli nasuwa mi się jeden pomysł mianowicie, że to co jest w tych textboxach jest umieszczane w jakiejs pamieci podrecznej gdy wchodze do tej funkcji i robie to w pętli i uzywa tylko tych z pamieci.
Ehh... teraz jaśniej ?? Plz help, pierwszy raz spotykam sie z czyms takim i nie wiem jak to ugryzc