2017-04-15 3 views
-5

私はそれがまともなi7 PCにどれくらいの時間を要するかと言えば何をお勧めすると思いますか?また、私は時間の経過とともにそれをスケールアップしたいので、30桁の長い数字を言うときにフレキシブルにできる言語が必要です。今は基本的には17桁の長い数字から始まり、行くごとに私は各計算後に小さな数字だけを気にするので、より速く小さくなります。私は除算と減算を行い、残りの部分は保持しません。思考?数学のための助言の言葉

+0

ご覧ください。[?なぜ?「誰かが私を助けることができる」ではない、実際の質問](http://meta.stackoverflow.com/q/284236) – EJoshuaS

+0

「誰かが私を助けることができる」はなかったです質問。それは私がこの非常に長いプロセスを始まらないように(私が行きたいところへ行くために何年もかかるでしょう)間違った方法から始めるのではなく、基本を得るための最良の言語です。誰かが実際に大きなアドバイスをくれたことは素晴らしいことです。 –

答えて

0

私は、どのくらいの時間がかかるかをテストするためのクイックプログラムをノックアップしました。ここでは、20桁の長い番号を使用したと思います。私はあなたが求めているパラメータではないことを知っていますが、どのようなスピードが期待できるかをよく説明しています。

あなたは、私はそれがここで使用されるコードに興味がある場合はこれが

50 Million Operations

i5-6200Uする@ 2.30GHzで実行されました。 30桁の数字を分割することはできませんが、ちょっとした調整が可能です。これはC#で書かれています。

using System; 

namespace _50_Million 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      Console.Write("Enter Number "); 
      string number = Console.ReadLine(); 
      Console.Write("What to divide by "); 
      string divide = Console.ReadLine(); 
      Console.Write("How many times "); 
      string d = Console.ReadLine(); 

      decimal previousNumber = Convert.ToDecimal(number); 
      decimal times = Convert.ToDecimal(d); 
      decimal divideDecimal = Convert.ToDecimal(divide); 
      var watch = System.Diagnostics.Stopwatch.StartNew(); 
      decimal newNumber = 0; 

      for (int i = 0; i < times; i++) 
      { 
        newNumber = previousNumber/divideDecimal; 
        previousNumber = newNumber;   
      } 

      watch.Stop(); 
      var elapsedMs = watch.ElapsedMilliseconds; 

      Console.WriteLine("It has taken " + elapsedMs + " millisecounds to divide " + number + " by " + divide + ", " + d + " times."); 
      Console.WriteLine("The Answer is " + newNumber); 
      Console.ReadLine(); 
     } 
    } 
} 
+0

それは素晴らしいです。目標は、前記数または計算の積(結果)に対する数のリストに基づいて異なる数を実行することである。したがって、ヒットごとの数を減らす。それは素晴らしいスタートで、私に必要な方向性を与えます。あなたのお時間をありがとうございました。 –

+0

私は別の質問をしました - これに加えて、私が取り組んでいることのためのさらなるコンセプト。私は手作業でこの方法を何年も費やしてきました。どうやら私はこれがたくさんの親指を持っているので、今質問をするのが禁止されています。私はいつもこのサイトを参照していて、私は助けと指導を求めるためにパントを取ったので、残念です。あなたの指導に感謝します。私は私のチームが私が何をしたのかを証明するためにC#で書くようにします。似たような方法があるかどうかを見たいと思っていましたが、見つけられないので、私は聞くことはできません。 –