首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在范围内查找数字位置

在范围内查找数字位置
EN

Stack Overflow用户
提问于 2016-09-15 14:56:17
回答 1查看 512关注 0票数 1

我正在编写一个函数,它必须在数值范围内找到给定数字的位置,范围是代码中的一个变量,现在假设范围是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; }

因此,正如我所说的那样,这是可行的,但我确信这可以更有效地实现,只使用number2bFonudrange的值,而不包括非常昂贵的循环。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-15 17:48:57

如果所有的范围都有相同的大小,并且从0开始,一个简单的除法就可以了,此外,您还可以使用模块化操作在子范围中找到位置。

这个过程很简单,根据您的范围大小查找您的数字n的整数除法,这将给您它所属的子范围内的位置,以查找子范围内的位置,再次根据范围大小查找您的数字的模数。

下面是一个示例python

代码语言:javascript
复制
def find_position(n,size):
    return (n//size, n%size)

尺寸范围为4

代码语言:javascript
复制
>>> 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

代码语言:javascript
复制
>>> 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应该很简单,如果我有点生疏,但是我想是这样的。

代码语言:javascript
复制
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-index,那么需要在每个数字中添加1才能得到正确的结果)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39514271

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档