0

私は現在 Java を学んでおり、私の課題の 1 つは、教授から与えられた特定の式を使用して pi を概算することであり、for ループを使用する必要があります。方向はあまり明確ではありませんでしたが、プログラムは非常に近いですが、なぜpiの値が近いのかわかりませんが、各間隔でどうあるべきかはわかりません.

これは私がプログラムを実行するために与えられた指示です:

(π の計算) 次の式を使用して π を概算できます。ここで、i は for ループ内の変数の名前で、pi は >π の変数の名前であり、sign は宣言されたときの初期値は 1 で、>for ループ内ではそれ自体の負数に等しくなるように設定されます。この割り当てには、必ず for ループ >for を使用してください。i が 100000 以下の場合、for ループの開始値は 2 であり、終了値は > である必要があります。pi を 10000 で割った値がゼロの場合、>pi は (4 * pi) である必要があります。

これは私が思いついた私のコードです。

public class Ch4PA1
{
public static void main(String[] args) {
//Declarations
double pi = 1;
double sign = 1;

for  (int i = 10000; i <= 100000; i += 10000)
{
    pi = 3.14159265359;
    sign = -2;
    pi += sign / (2 * i - 1.0);
    System.out.println("i : " + i + " The PI is " + pi);
}
    }
}

私は自分が間違っていることを理解できません。私はこのプログラムに約10時間参加しており、それを理解しようとしてイライラするだけです.

4

3 に答える 3

0

質問から理解できることから、宣言されたときの符号の初期値は1であり、forループ内ではそれ自体の負に等しくなるように設定されています。

    pi += (-sign) / (2 * i - 1.0);

for ループの定義は、次のようになります。

    for(int i=2; i<=100000 ; i++)

質問と、ループごとにループ変数 i を 10000 に増やした理由をまだ理解していません。

以下に示すように、ループ内に IF 条件も必要です。

    if(pi/10000)
    pi *= 4
于 2013-10-11T18:44:08.510 に答える
0

指示を振り返ってください...彼らは「...宣言されたときの符号の初期値は1であり、> forループ内ではそれ自体の負の値に等しくなるように設定されています」と言います。設定しています

sign = -2;

すべての反復で。

彼らはまた、「for ループの開始値は 2 にする必要があります...」と言っています。あなたが持っている

for  (int i = 10000; i <= 100000; i += 10000)

これにより、forループの開始値が 10000 になります。

于 2013-10-11T18:38:00.953 に答える