我正在寫一個函數,它必須在數字範圍內找到給定數字的位置,範圍是代碼內的一個變量,現在可以說範圍是4
,因此範圍看起來像以下內容: [ 0-3 ] [ 4-7 ] [ 8-11 ] [ 12-15 ] [ 16-19 ] [ 20-23 ] [ 24-27 ]
我想實現的是以最快的方式找到給定數字所屬的範圍,因爲此操作的執行超過了百萬個事件。 所以我至今寫,並能正常工作,如下:
public String findRange(int range,int number2bFound) { int base = 0; if (number2bFound == 0) number2bFound = 1.0; int higher = 0; while (base <= number2bFound) { higher = base + (range - 1); if ((base <= number2bFound) && (higher >= number2bFound)) return base + "-" + higher; base += range; } return null; }
所以,正如我所說的這個工程,但我相信這是可以做到更有效地實現,僅使用number2bFonud
值和range
,並排除非常昂貴的循環。查找範圍內的數字位置
1
A
回答
1
如果所有的範圍具有相同的大小並且從0開始,則可以進行簡單的劃分,此外,您還可以通過模運算找到子範圍中的位置。
該過程很簡單,找到您的號碼n
的整數除以你的範圍大小,並會給你在哪個子範圍它屬於,找到子範圍內的位置再次找到你的號碼的模數針對範圍大小
這裏是一個例子蟒
def find_position(n,size):
return (n//size, n%size)
與範圍大小4
>>> test=[ [0,1,2,3], [4,5,6,7], [8,9,10,11], [12,13,14,15], [16,17,18,19], [20,21,22,23] ]
>>> find_position(6,4)
(1, 2)
>>> test[1][2]
6
>>> find_position(11,4)
(2, 3)
>>> test[2][3]
11
>>>
的範圍5
>>> test=[ [0,1,2,3,4], [5,6,7,8,9] ,[10,11,12,13,14],[15,16,17,18,19], [20,21,22,23,24] ]
>>> find_position(11,5)
(2, 1)
>>> test[2][1]
11
>>>
的過程是一個後續,讓Size
是每個子範圍和n
你婉找到數的大小,那麼你只需要在是把數n你想找到。
那意思就是Java的應該很簡單,如果藉口是我有點生疏,但這樣的事情,我認爲
public String findRange(int range,int number2bFound){
int sub_ran_pos, pos;
sub_ran_pos = (int) number2bFound/range; //or however the integer division is in java
pos = number2bFound % range; //or however the modulo operation it is in java
return sub_ran_pos + "-" + pos; //or the appropriate return type, for this
}
(我不記得了,但如果Java 1指數,那麼你需要在每個數字中加1來得到正確的結果)
相關問題
- 1. c#如何找到範圍內的數字位置
- 2. 查找位置範圍擅長
- 3. 查找範圍內的值
- 4. MATLAB:查找範圍內的函數
- 5. 查找基於範圍內的數字的字符串
- 6. 查找範圍內的範圍值之和數量
- 7. 在質數範圍內查找最大出現位數
- 8. 查找給定範圍內的大素數(〜8000位)
- 9. 查找範圍內的數字的因數
- 10. 查找Mathematica中的數字範圍
- 11. 如何高效查找數字範圍的按位或運算
- 12. 查找ASCII字符範圍
- 13. 哪種算法可以找到數字範圍內的空數字範圍?
- 14. 定位範圍內的一個範圍
- 15. 在java中查找數字範圍
- 16. 使用Python re.search查找數字範圍
- 17. 如何查找數字範圍
- 18. 查找一定範圍內的數字量
- 19. 查找數字是否在範圍內的最快方法
- 20. 查找範圍
- 21. 範圍內的圖像位置
- 22. 查找和天數範圍
- 23. 查找半徑範圍內的對象
- 24. Excel VBA:查找範圍內的對象
- 25. 查找並選擇範圍內的值
- 26. 查找範圍內的免費號碼
- 27. 查找50英里範圍內的給定IP地址的準確位置
- 28. 在最小和最大範圍表中查找值的位置
- 29. 如何查找道路距離圓範圍內的位置名稱?
- 30. 如何查找重複數字在一個範圍內的數字