たこぜりー研究室

大腸菌DNAは4.64Mbp。酵母は13Mbpで、ヒトは3Gbp

スポンサーサイト

#
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

do while continue でうっかり

#504
例えばある尤度関数を最大化するようなとき、
int count = 0;
double x = 10000, value = 0;
do
{
  if (count == 0 && !範囲チェック(x))
  {
    x /= 2; continue;
  }
  value = 偏微分計算(x);

  if (十分0に近い(value))
    break;

  x = 次の値(x, value);
}
while (++count < 100);

bool 範囲チェック(double x)
{
  return 2次偏微分計算(x) < 0;
}

範囲チェック() は 1 回しか評価されず。
continue の後、while の内容通るんだな・・・orz
for とか foreach のときを考えれば条件式を通るのは当たり前なのだが・・・、do にいきなり飛んでくれるものだとうっかり勘違いしていた、かも。

コメント


コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURL:  http://takojelly.blog2.fc2.com/tb.php/504-eb95ea56
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。