在2X2矩陣中,我們如何找到矩陣的數量,使得軌跡爲N,行列式爲正,所有條目也爲正數。因此,如果矩陣是如此d = N-a並且行列式爲正,那麼我們如何有效地計算對(a,b)的數量,使得a * b < = n其中n的範圍從1到N-1?蠻力不適用於此矩陣
-2
A
回答
0
假設我們具有矩陣m={{a,b},{c,d}}
,那麼我們有:
trace(m) = N => a+d = N => d = N - a
det(m) >= 0 => a*d - b*c >= 0 => a*(N-a) >= b*c
因此,對於任意的而非固定的a < N
我們可以計算d=N-a
,q:=a*(N-a)
和僅具有約束還剩下b*c <= q
。
現在,如果元素可以是實數,您可以通過選擇b > 0
和計算c = q/b
來獲得無限的解決方案。
如果元素應該是整數,則必須找到(b,c)
這樣的b*c <= q
。你會發現所有的解決方案如下:
- 選擇
0 < b <= q
- 計算
cmax=floor(q/b)
(其中地板向下取整) - 所有對
(b,1), ..., (b,cmax)
是可能的解決
總數:
for(int a=1; a<N; a++) {
int q = a*(N-a);
for(int b=1; b<=q; b++) {
int cmax = floor(q/b);
for(int c=1; c<=cmax; c++) {
std::cout << "(a,b,c,d)=" << a << "," << b << "," << c << "," << N-a << std::endl;
}
}
}
+0
可以進一步優化嗎? – user3502068
相關問題
- 1. 總和三維矩陣 - Matlab蠻力
- 2. 使用適用於矩陣
- 3. 蠻力力 - C#
- 4. svds不適用於某些矩陣?
- 5. Sympy:Matrix.doit()不適用於矩陣元素
- 6. 翻譯矩陣適用於視圖矩陣不工作(android opengl2)
- 7. Cuda矩陣乘法 - 不適用於某些非方形矩陣
- 8. jersey sse不適用於野蠻8.2
- 9. R適用聲明不適用矩陣
- 10. 蟒蛇蠻力?
- 11. 蠻力腳本
- 12. 蠻力與NULLs
- 13. 蠻力攻擊
- 14. 蠻力優化
- 15. 蠻力HMAC
- 16. 轉換矩陣力ncol等於nrows
- 17. R:適用於所有矩陣元素
- 18. WordPress蠻力mod_rewrite - 用nginx?
- 19. MySQL蠻力攻擊
- 20. matlab循環蠻力
- 21. java中的蠻力
- 22. CUDA蠻力樂趣
- 23. MD5蠻力加速
- 24. MATLAB蠻力索引
- 25. GPU蠻力實現
- 26. Java搜索陣列蠻力並不花費內存?
- 27. MATLAB中矩陣的不精確能力
- 28. 如何用蠻力解決8皇后1D陣列?
- 29. 適用於JOGL +通用矩陣數學的快速Java矩陣庫?
- 30. Zen Timestamp插件不適用於矩陣版本
矩陣元素應該是整數嗎? – Danvil
難道你不只是[在不同的帳戶下發布這個問題](http://stackoverflow.com/questions/22885778/efficient-way-other-than-brute-force-for-this-matrix)? – Blastfurnace
此問題似乎來自CodeChef上的[跑步比賽](http://www.codechef.com/APRIL14/problems/CNPIIM)。引用他們的[行爲準則](http://discuss.codechef.com/questions/18662/does-codechef-have-any-code-of-conduct/18667),「不要詢問或討論任何CodeChefs的任何方面在任何其他平臺上進行的在線或線下比賽中遇到問題,在比賽期間應避免討論策略,並推遲到比賽結束。「所以,在比賽結束之前,討論這個問題基本上是不好的體育精神。 – Gassa