- 締切済み
2のN乗が10の場合、手計算でNの値を求める方法
2のN乗が10の場合、手計算でNの値を求める方法が知りたいです。 電卓などでこの値が出ましたでなく、アルゴリズムを知りたいです。 中学レベル 高校レベル 大学レベル の3レベルで説明できる人いますか?
- みんなの回答 (11)
- 専門家の回答
みんなの回答
- asuncion
- ベストアンサー率33% (2127/6289)
回答No.1
ニュートン法による求め方を紹介します。 コンピューターに手計算の代わりをさせているだけですので、 逆にご自分がコンピューターになったつもりで下記のコードを実行すれば、 そのうちlog(2)10が求まることでしょう。 #include <stdio.h> #include <math.h> double f(double x) { return pow(2.0, x) - 10.0; } double f_prime(double x) { return pow(2.0, x) * log(2.0); } int main(void) { double x0 = 0, x1, eps = 1.0e-10; int i; for (i = 0; i < 100; i++) { x1 = x0 - f(x0) / f_prime(x0); if (fabs(x1 - x0) < eps) { break; } x0 = x1; } printf("%.10f\n", x1); return 0; }
- 1
- 2