Probability = 0.52;
SharePrice = 215;
n = 10000;
count = 0;
count250 = 0;
count200 = 0;
for i = 1:n
CoinToss = rand(1);
if (SharePrice == 200)
break;
end
if (SharePrice == 250)
break;
end
if(Probability < CoinToss)
SharePrice = SharePrice - 0.2;
else
SharePrice = SharePrice + 0.2;
end
end
Der Code scheint nur über die Grenze hinauszugehen, die ich ihm gegeben habe (200 und 250), warum hört es nicht auf?
Antworten:
0 für die Antwort № 1Willkommen bei Gleitkomma-Ungenauigkeiten; Ihre SharePrice
wahrscheinlich addiert sich nicht zu genau 200, so wird es am Ende der SharePrice == 200
Bedingung (und das gleiche gilt für SharePrice == 250
).
Du solltest in Betracht ziehen break
aus Ihrer Schleife, wenn SharePrice
ist unter 200 oder über 250:
if (SharePrice <= 200)
break
end
if (SharePrice >= 250)
break
end