dポイントプレゼントキャンペーン実施中!

2のN乗が10の場合、手計算でNの値を求める方法が知りたいです。

電卓などでこの値が出ましたでなく、アルゴリズムを知りたいです。

中学レベル
高校レベル
大学レベル

の3レベルで説明できる人いますか?

A 回答 (11件中11~11件)

ニュートン法による求め方を紹介します。


コンピューターに手計算の代わりをさせているだけですので、
逆にご自分がコンピューターになったつもりで下記のコードを実行すれば、
そのうち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;
}
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!