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
コードは、私が与えた境界(200と250)を超えているように見えますが、なぜそれは止まらないのですか?Breakステートメントが実行されない
を単純な答えを持っている必要があります。 – James
浮動小数点演算へようこそ。実験として、 '(215-0.2)==(214.6 + 0.2)'を試してください。あなたは彼らが平等ではないことがわかります。 '215-0.2'を小数点以下の桁まで印字すると、' fprintf( '%。17g \ n'、215-0.2) 'が' 214.80000000000001'となります。 – beaker