ある値が 2 のべき乗かどうかを調べるために、わざわざループを使っていませんか? もっといい方法があります。それがこの式 (x & (x-1)) です。この値が0だと2のべき乗です。ただし、x=0の時は気をつける必要があります。 xx-1x & (x-1)べき
ある値が 2 のべき乗かどうかを調べるために、わざわざループを使っていませんか? もっといい方法があります。それがこの式 (x & (x-1)) です。この値が0だと2のべき乗です。ただし、x=0の時は気をつける必要があります。 xx-1x & (x-1)べき
2.べき乗 pnの計算 べき乗計算のためのアルゴリズムを素直に書けば、以下のようになる。 w=1 for i=1 to n w=w*p next i print w もちろん、これでまちがっていない。 しかし、このアルゴリズムの処理時間はnの値に比例する。 従って、nが極端に大きい場合、例えば、n=10100のような場合には、完全にお手上げである。 このループの回数を減らす方法を考える。 例えば、2100の計算を考えてみる。 上のやり方なら、掛算を100回やらなければならない。 しかし、 2100=(250)2 であるから、250を上の方法で計算してやると、掛算回数は50回。 よって、2100は51回の掛算回数で求められる。 これは、最初の100回に比べて、ほぼ半分の回数である。 ならば、250自体についても同じようにやってみる。 250=(225)2 だから、掛算回数は、27回となる。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く