0
給定一個數字「n」,它是2的冪數,我怎樣纔能有效地找到最相當於彼此的兩個因子?換句話說,如果我有一個線性陣列並想將其映射到2D,我如何才能找到最相近的2D尺寸(最接近方形的圖像尺寸)?一個數字的大部分等價因子
需要進行某種按位操作才能使其更快速,而不是循環因素。
給定一個數字「n」,它是2的冪數,我怎樣纔能有效地找到最相當於彼此的兩個因子?換句話說,如果我有一個線性陣列並想將其映射到2D,我如何才能找到最相近的2D尺寸(最接近方形的圖像尺寸)?一個數字的大部分等價因子
需要進行某種按位操作才能使其更快速,而不是循環因素。
n
可表示爲2^k
(因爲您認爲它是2的冪)。如果k
是偶數,則n == 2^(k/2) * 2^(k/2)
(例如16==4*4
)。如果k
是奇數,那麼可以得到的最接近的是n == 2^((k-1)/2) * 2^((k+1)/2)
(例如8==2*4
)
'n'可以表示爲'2^k'(因爲你說它是2的冪)。如果'k'是偶數,那麼'n == 2 ^(k/2)* 2 ^(k/2)'(例如'16 == 4 * 4)。如果'k'是奇數,那麼你能得到的最接近的是'n == 2 ^((k-1)/ 2)* 2 ^((k + 1)/ 2)'(例如'8 == 2 * 4') –
你絕對正確的懷疑。現在,你只需要想一想,「2到n」的力量在數學上是什麼意思,並給出了「n」,如何找到一個數字,當乘以自身時導致這個「2^n」。免費線索:當「n」是偶數時,這很容易。 –
太棒了!請作爲答覆發佈,我會接受。 – user1043761