C言語関係掲示板

過去ログ

No897 二つの値を比べて何桁まで一致しているかを調べる

[戻る] [ホームページ]
No.573

有効数字
投稿者---こうじ(2003/10/24 22:44:56)


今、二つの値を比べて有効数字が何桁まで一致しているかを調べるプログラムを作っているのですが、どんなアルゴリズムを用いればよいのでしょうか?非常に考えているのですがなかなかわかりません。
どなたか教えていただけないでしょうか??

No.574

Re:有効数字
投稿者---かずま(2003/10/25 01:33:12)


> 今、二つの値を比べて有効数字が何桁まで一致しているかを調べるプログラム
> を作っているのですが、どんなアルゴリズムを用いればよいのでしょうか?

こんなのはいかがですか?
#include <stdio.h>
#include <math.h>

int precision(double a, double b)
{
    return (a == b) ? 16 : -(int)log10(fabs((a - b) / b));
}

int main(void)
{
    double a, b, c;

    while (scanf("%lf%lf", &a, &b) == 2)
        printf("%d\n", precision(a, b));
    return 0;
}


No.577

Re:有効数字
投稿者---こうじ(2003/10/25 23:20:19)


ありがとうございます。。考えてみます。。

No.575

Re:有効数字
投稿者---YuO(2003/10/25 11:58:07)


>今、二つの値を比べて有効数字が何桁まで一致しているかを調べるプログラムを作っているのですが、
>どんなアルゴリズムを用いればよいのでしょうか?

有効数字が何桁まで一致している,というのはどういうことですか?
「有効数字は何桁」という表現はしますが,一致・不一致を論じるものではないと思います。


No.576

Re:有効数字
投稿者---こうじ(2003/10/25 23:19:37)


変な文章ですみませんでした。つまり・・・
真の値がわかっている状態で計算値の値を比べたときに
計算値の有効数字の桁数を求める関数を作りたいのですが・・・
どうでしょうか??




No.578

Re:有効数字
投稿者---YuO(2003/10/26 00:15:44)


>真の値がわかっている状態で計算値の値を比べたときに
>計算値の有効数字の桁数を求める関数を作りたいのですが・・・

計算値の有効数字のけた数は,
・入力値の値と有効数字のけた数
・機械的な精度
・演算式
のみから決定すると思いますが。

どのようなものを求めたいのか,具体的に記述して下さい。
あと,けた数は何進法で数えるのかも記述して下さい。


No.593

Re:有効数字
投稿者---ceybord(2003/10/29 18:46:37)


>今、二つの値を比べて有効数字が何桁まで一致しているかを調べるプログラムを作っているのですが、どんなアルゴリズムを用いればよいのでしょうか?非常に考えているのですがなかなかわかりません。
>どなたか教えていただけないでしょうか??

こういうのはsprintf関数を使うと良いです。