-5

課題は、1/3 を自分自身に何度も加算するコンピューター プログラムを作成し、その結果を 1/3 に 1/3 を加算した回数と比較することです。½ についても同じことを行います。プログラムでは、この演算を 2 回行います。1 回は単精度 (float) を使用し、もう 1 回は倍精度 (double) を使用します。これらの両方が 1 つのプログラムに含まれます。これらの大きな数で機能するカウンターのタイプを使用していることを確認してください。プログラムはこれらの追加を 109 (10 億) 回行います。

#include<iostream>
#include<conio.h>
#include<math.h>
#include <limits>

using namespace std;
typedef std::numeric_limits< double > dbl;
int main()
{
    long size=1000000000;
    int count=0;
    long N=10;
    float nAdd=1;
    float nMul=1;

    cout.precision(dbl::digits10);
    cout<<"Iterration #\t\tAdd\t\t\tMul"<<endl;
    for(long  i=1; i<=size; i++)
    {
        nAdd+=1.0/3.0;
        nMul*=1.0/3.0;


        count++;
        if(count%N==0 && count!=0)
        {
            N*=10;
            cout<<i<<"\t\t"<<fixed <<nAdd<<"\t\t"<<fixed <<nMul<<endl;
        }
        if(count==size)
        {
            cout<<"Difference : "<<fixed <<nAdd<<" - "<<fixed <<nMul<<" = "<<fixed <<nAdd-nMul<<endl;
        }
    }
    getch();
    return 0;
}

だから私はこれを行ったので、私が使用しなければならない数を適切に取得できません.1/3を掛けるか、1/3をそれに追加します

ありがとうございます

4

1 に答える 1

0

自分自身に1/3を何度も追加する

これは、⅓を何回も追加する必要があることを意味します:⅓+⅓+⅓+⅓+..。

次に、その計算の結果を、追加した回数の1/3を掛けた結果と比較することになっています。したがって、たとえば、それを4回(⅓+⅓+ ⅓+⅓)加算すると、その結果を⅓×4の結果と比較します。

数学的には結果は同じであるはずですが、この割り当ての目的は、コンピューターが計算を実行する方法について何かを教えることです。

于 2012-10-15T06:43:17.733 に答える