2010-03-29 54 views
1

我寫了一個小程序,可以在一小時內爲一個任務解決49151個數獨,但是我們必須計時。我想我只是讓它運行,然後檢查執行時間,但它說-1536.087秒。我猜它必須做的時間是一些簽名dataype什麼的,但我不知道在控制檯中的定時器使用什麼數據類型(code :: blocks控制檯,我不知道這實際上是一個單獨的控制檯,或者只是一個從本地操作系統運行終端的跑步者),所以我無法檢查真正的時間。我寧願不用我的程序中的一些編碼計時器再次運行,因爲我希望現在能夠再次使用我的電腦。任何人都知道這個時間會是什麼?它應該在40到50分鐘之間,所以在2400到3000秒之間。負執行時間

+1

請發表您的代碼的相關部分... – 2010-03-29 02:15:15

+0

發佈他的代碼無濟於事,計時器結果來自他的IDE:「我不知道控制檯中的計時器使用了什麼數據類型(代碼::塊控制檯)「 – 2010-03-29 02:39:33

+0

@Steve Jessop:啊,你是對的 - 我掠過太快,讀取這一點,指出OP使用了一些提供計時器的類,所以我們可能能夠找到返回類型。 – Cascabel 2010-03-29 02:59:42

回答

10

如果時間以32位帶符號int存儲在微秒中,則2758880296 us(微秒)將產生此結果,因爲2758880296-2^32 = -1536087000。在幾分鐘和幾秒鐘內,這是45:58.880296。 (用一粒鹽處理那些最後幾位小數,因爲大概你所打印的是四捨五入到最接近的毫秒)

但是,當然,這只是一個基於你提供的信息的智能猜測。

+0

謝謝,愚蠢的我沒有想到微秒。在發佈代碼時:這是沒用的,因爲它是代碼運行後的執行時間,它與代碼本身無關。那麼,當然代碼會影響時間,但我的意思是我沒有編寫計時器代碼,它是代碼::塊中的控制檯的一些定時器,用於執行線程。 – FinalArt2005 2010-03-29 03:14:31

+0

哦,對不起,你已經說過你明白在這個問題本身的評論中,我猜我掠過得太快了;) – FinalArt2005 2010-03-29 03:25:27

2

如果你在Linux上運行,用「時間」:

$ time ./your_program 
real 0m0.003s 
user 0m0.004s 
sys  0m0.000s 
+2

-1,「我寧願不再運行這個」 – 2010-03-29 02:40:26

0

我猜42分鐘是準確的(忽略小數,並假設一個12位帶符號的數據類型)......但是,這是一個愚蠢的猜測,因爲你沒有包括任何有關如何檢查執行時間的信息。

+1

我不確定你是如何得到這個結果的 - 或者你爲什麼認爲12位數據類型可能(在C++中聲明一個好運氣)。 – Cascabel 2010-03-29 02:37:34

+2

@Jefromi:'struct int12 {int val:12;/*很多,很多操作符重載* /};';-) – 2010-03-29 02:44:01

+0

@Jefromi:他顯然做出了一個荒謬的猜測來證明需要更多信息才能給出正確的響應。我們不知道數據類型......但是,鑑於OP說「不到一個小時」,我們可以做出一個非常好的猜測,我們可以假設它溢出了它少。鑑於提供的值,最有可能的是32位有符號時間表示。 – 2010-03-29 02:50:04

2

我猜46分鐘。

假設一個32位有符號整數表示微秒。

然後-1,536,087,000us將與2,758,880,296us相同,即45:58.880。

雖然有可能有另一種表達方式在您的範圍內給出同樣可信的結果。