2017-04-15 48 views
-5

試圖弄清楚我是否想要運行一個數字長達5千萬的數字,它將花費多少時間才能體現在一臺體面的i7個人電腦上,您會推薦什麼語言?另外,我想隨着時間推移擴展它,所以需要一種語言,當我說30個數字的長數字時,它可以是靈活的。現在基本上我以一個17位長的數字開始,因爲在每次計算後我只關心較小的數字,所以它會變得更小。我只做分割和減法,不保留任何餘數。思考?對數學校對語言的建議

+0

請參閱:[?爲什麼?「有人可以幫助我」不是一個實際問題(http://meta.stackoverflow.com/q/284236) – EJoshuaS

+0

「有人可以幫助我」是不是題。這是獲得基礎的最佳語言,所以我不會從錯誤的方式開始這個漫長的過程(需要幾年才能到達我想去的地方)。很高興有人給出了很好的建議。 –

回答

0

我敲了一個快速程序來測試需要多長時間,在這裏我相信我已經使用了一個20位長的數字。我知道這不完全是你所要求的參數,但是它能很好地說明你可以期待什麼樣的速度。

這是如果你有興趣的,我這裏使用的是代碼在i5-6200U @ 2.30GHz

50 Million Operations

運行。它不能夠分割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

我還有一個問題 - 加入到這個問題中,但是我正在處理的內容還有一個更進一步的概念。我已經花了多年的時間在這方面手工,我很抱歉,如果它是第二性質的這麼多自動化。很明顯,我現在被禁止提問,因爲這有很多問題。有點令人失望,因爲我總是參考這個網站,第一次我坐下來尋求幫助和指導。感謝Max的指導。我將指派我的團隊用C#編寫它來證明我所做的工作。想看看是否有任何類似的方法,我找不到任何,猜我不能問。 –