0

これは、Math.sqrt とニュートン法を使用して平方根を見つけるのにかかる時間を比較します。クライアントがストップウォッチを停止および再起動できるようにするメソッドをこれに追加することになっていますが、これを行う方法がわかりません。残念ながら、他の質問を検索してもあまりうまくいきませんでした。これはクラスのためのものなので、私に与えられた完全な答えは望んでいませんが、私の目標を達成する方法についてのアドバイスやチュートリアルへのリンクはいいでしょう. 助けてくれてありがとう。

public class Stopwatch 
    {
private final long start;

public Stopwatch()
{ start = System.currentTimeMillis(); }

public double elapsedTime()
{
    long now = System.currentTimeMillis();
    return (now - start) / 1000.0;
}

public static void main(String[] args)
{
    int N = Integer.parseInt(args[0]);

    double totalMath = 0.0;
    Stopwatch swMath = new Stopwatch();
    for (int i = 0; i < N; i++)
        totalMath += Math.sqrt(i);
    double timeMath = swMath.elapsedTime();

    double totalNewton = 0.0;
    Stopwatch swNewton = new Stopwatch();
    for (int i = 0; i < N; i++)
        totalNewton += Newton.sqrt(i);
    double timeNewton = swNewton.elapsedTime();

    System.out.println(totalNewton/totalMath);
    System.out.println(timeNewton/timeMath);
}

}
4

2 に答える 2

0

timeElapsedUntilLastStoplong 型の別の属性を作成します。

の現在の値に追加を返すのではなく、経過時間とまったく同じことを行う stop というメソッドを作成しますtimeElapsedUntilLastStop

restart()メソッドは、十分な開始変数を初期化する必要があります。

于 2013-03-26T21:53:51.250 に答える
0

これはクラスのためのものであり、あなたに与えられた答えを望んでいないことについてあなたが正直であることは素晴らしいことです. それは学習の良いスタートです:)

タスクにアプローチする方法は次のとおりです。

まず、不足しているメソッドを定義します。次に、メソッドが何をすべきかを (インライン コメントとして) 書き始めます。ストップウォッチをリセットするとはどういう意味ですか? また、ストップウォッチを止めるとはどういう意味ですか? 「現実の」ストップウォッチに類似点を描くことができます。これにより、考え始めることができます。ルールを定義したら、これをコードに変換できるはずです。

これはあなたが予想していたよりも少し抽象的かもしれませんが、あなたが持っているように、正しい態度でそこにたどり着くと確信しています! 幸運を!

于 2013-03-26T21:59:24.790 に答える