我需要設計一個算法,告訴給定的整數矩陣是否爲有效的拉丁方格。我之前從未和拉丁廣場合作過,所以我不知道從哪裏開始。經過一番研究,我只找到寫拉丁方塊的算法。唯一發生在我身上的是所有列和行的總和應該是相同的,但是如果它在同一行和列中重複,我必須檢查每個數字。這樣做該計劃將有很大的時間成本。我正在使用C++。如何判斷一個三維正方形是否爲拉丁方格
0
A
回答
0
這樣做,程序會有很大的時間成本。
不,因爲您可以在到達結尾之前拒絕很多矩陣。所以算法會快速失敗。工作算法的最差估計是O(n*(n+1))
(我假設你只評估維數爲n * n的方陣)。但平均算法會好得多 - 因爲它會在找到第一個相等的情況下失敗。
更新: 平均複雜度可以粗略和近似估計爲實數拉丁方的數量與可能的平方數。要做到這一點,我們需要引入瞭解normalized
廣場。兩個方形波紋管直觀上是相同的:
[ 1 2 [5 7
2 1 ] 7 5]
所以正常化這一點,我們可以使用替換爲數字1 ... N * N平方的n個。所以第一種形式獲勝。
正火廣場Wiki provides an estimation
你害怕嗎?但平均而言,我們還需要將此公式除以矩陣總數。要做到這一點,請參閱此公式http://en.wikipedia.org/wiki/Combination
相關問題
- 1. 如何判斷一個動作方法是否有HttpPost attributte?
- 2. 如何判斷一個方法是否被調用?
- 3. 如何判斷一個單元格是否爲#NAME?
- 4. CGAL如何判斷三角形是否在邊界
- 5. 如何判斷一個區域是否屬於某個形狀?
- 6. 如何判斷某個方法是否在類中定義?
- 7. 用於檢查數組是否爲拉丁方的Java方法
- 8. 如何判斷第三方供應商框架是否使用「Defines Module」構建?
- 9. 如何判斷方法「performSegueWithIdentifier:sender:」?
- 10. 如何判斷的方法是一種通用的方法
- 11. 如何判斷一個JSON對象是否是一個數組?
- 12. 如何判斷一個函數是否是一個類?
- 13. 如何判斷MIDIEndpointRef是否爲虛擬?
- 14. 如何判斷AirPlay是否爲鏡像?
- 15. 如何判斷孩子是否爲零
- 16. 如何判斷對象是否爲空?
- 17. 如何判斷變量是否爲空?
- 18. 如何判斷MemberInfo是否爲內部
- 19. 如何判斷GIF是否爲動畫?
- 20. 如何判斷UITextField是否爲firstResponder
- 21. 如何判斷Gtk.Widget是否爲Gtk.Container?
- 22. 如何判斷資源是否爲空?
- 23. 如何判斷傳入請求是否是web方法請求?
- 24. 任何方式來判斷一個Python函數是否返回一個值
- 25. 如何判斷一個形狀是否只有四邊形長度?
- 26. 我如何判斷一個南希請求是否爲移動
- 27. 如何判斷DatagridView的第一個單元是否爲空?
- 28. 如何判斷一個javascript變量是否爲函數
- 29. 如何判斷兩個多邊形是否相交?
- 30. 如何判斷一個方法是否在UpdatePanel回發中運行?
您能告訴我們「大時間成本」版本嗎?那會給我們一些幫助。 – 2013-04-26 16:51:35
我們所能爲您做的就是Google的答案 - 您可以自己做的事情。如果沒有適當的代碼來幫助你解決問題,那麼沒有其他的答案。 – 2013-04-26 16:51:40
你沒有努力提出一個合適的問題:請提供你迄今爲止的嘗試,以及你期望的結果。 – Escualo 2013-04-26 17:40:46