问题标签 [range]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 确定一个数字是否在一组指定的范围内
我正在寻找一种确定数字是否在指定范围内的流畅方法。我当前的代码如下所示:
有没有更好的方法来做到这一点?
javascript - 在 JavaScript 范围对象中检测换行符的问题
我有一些 javascript 可以根据用户选择的内容来操作 html。对于真正的浏览器,我使用的方法利用了“Range”对象,如下所示:
content 变量包含所有选定的文本,效果很好。但是我发现我无法检测到结果字符串中的换行符。例如:
选定的文字是:
美国广播公司
定义
吉
range.toString() 计算结果为“abcdefghi”。
对特殊字符的任何搜索都不会返回 \n \f \r 甚至 \s 的实例。但是,如果我将变量写入可编辑控件,则会再次出现换行符。
有谁知道我错过了什么?
这些选择和操作在可编辑的 div 上可能是相关的。同样的行为在 Chrome、FireFox 和 Opera 中也很明显。令人惊讶的是,IE 无论如何都需要完全不同的代码,但那里没有任何问题,除了它只是 IE。
非常感谢。
floating-point - 从 1.5 x 10^(-45) 到 3.4 x 10^38 有多少个不同的数字?
从 1.5 x 10 -45到 3.4 x 10 38(IEE754 单精度浮点数)有多少个不同的数字?
math - [0, rows) 和 [1, rows] 是什么意思?更具体地说 [ 和 )
我知道它是从 0 到行和从 1 到行,但哪些是包含哪些是排除?
algorithm - 快速算法在一组范围中快速找到一个数字所属的范围?
情景
我有几个数字范围。这些范围不重叠——因为它们不重叠,所以逻辑上的结果是任何时候都不能有一个数字属于多个范围。每个范围是连续的(单个范围内没有空洞,因此范围 8 到 16 将真正包含 8 到 16 之间的所有数字),但两个范围之间可以有空洞(例如范围从 64 开始到 128,下一个范围从 256 开始到 384),因此某些数字可能根本不属于任何范围(在此示例中,数字 129 到 255 不属于任何范围)。
问题
我得到一个数字,需要知道该数字属于哪个范围......如果它属于任何范围。否则我需要知道它不属于任何范围。速度当然很重要;我不能简单地检查 O(n) 的所有范围,因为可能有数千个范围。
简单的解决方案
一个简单的解决方案是将所有数字保存在一个排序的数组中并对其运行二进制搜索。那至少会给我 O(log n)。当然,二进制搜索必须进行一些修改,因为它必须始终检查范围的最小和最大数字。如果要查找的数字介于两者之间,则我们找到了正确的范围,否则我们必须搜索低于或高于当前值的范围。如果最后只剩下一个范围并且数字不在该范围内,则该数字根本不在范围内,我们可以返回“未找到”结果。
范围也可以以某种树结构链接在一起。这基本上就像一个带有二进制搜索的排序列表。优点是修改树比排序数组(添加/删除范围)更快,但不像我们浪费一些额外的时间来保持树的平衡,随着时间的推移,树可能会变得非常不平衡,这将导致搜索比对排序数组的二分搜索慢得多。
可以争论哪种解决方案更好或更差,因为在实践中搜索和修改操作的数量几乎是平衡的(每秒执行的搜索和添加/删除操作数量相同)。
问题
对于这类问题,是否有比排序列表或树更好的数据结构?也许在最好的情况下甚至比 O(log n) 更好,在最坏的情况下可能比 O(log n) 更好?
以下是可能对这里有所帮助的一些附加信息: 所有范围始终以 2 的幂的倍数开始和结束。它们总是以相同的 2 次幂开始和结束(例如,它们都以 4 的倍数或 8 的倍数或 16 的倍数等开始/结束)。两个的幂在运行期间不能改变。在添加第一个范围之前,必须设置 2 的幂,并且所有添加的范围必须以该值的倍数开始/结束,直到应用程序终止。我认为这可以用于优化,好像它们都以例如 8 的倍数开始,我可以忽略所有比较操作的前 3 位,如果有的话,其他位会告诉我范围。
我阅读了有关部分和范围树的信息。这些是问题的最佳解决方案吗?有没有可能更好的解决方案?这个问题听起来类似于 malloc 实现必须做的事情(例如,每个释放的内存块都属于一个可用内存范围,而 malloc 实现必须找出哪一个),那么这些通常如何解决问题?
python - Python:从间隔映射到值
我正在重构一个函数,给定一系列隐式定义区间的端点,检查区间中是否包含一个数字,然后返回一个对应的(不以任何可计算的方式相关)。现在处理这项工作的代码是:
这是 IMO 非常可怕的,并且缺乏间隔和返回值都是硬编码的。当然可以使用任何数据结构。
vba - ScreenUpdating 为 False 时刷新 Range 的显示
当 ScreenUpdating = False 时,有没有办法从 VBA 仅刷新指定范围的单元格的显示?
我的意思是:
...
卡尔
internet-explorer - 在 IE 中选择 StartContainer
我有一个选择对象,我在 IE 中运行
然后我尝试获取 startContainer 但无法弄清楚如何。所有示例都向我展示了设置 startContainer,但我的基础是突出显示文本。如果不先获取它,我如何知道将其设置为哪个元素?
我知道在 FireFox 中它很简单
php - 查找颜色范围
我想从一个 RGB 值的值中找到一系列颜色
例如,如果给我 rgb(0,100,200),它将给我介于 rgb(0,0,255) 和 rgb(0,255,255) 之间的所有内容。但不是 rgb(255,0,255)。
同样 rgb(150,50,0)。返回:rgb(255,0,0) 和 rgb(255,255,0)。不是 rgb(255,0,255)。
有道理?
我使用 PHP
c# - 用于折叠一组可能重叠的范围的好的通用算法是什么?
我有一个方法可以获取此类的许多对象
在我的情况下T
是DateTime
,但int
为了简单起见让我们使用。我想要一种将这些范围折叠成覆盖相同“区域”但不重叠的方法。
所以如果我有以下范围
- 1到5
- 3 到 9
- 11 至 15
- 12 至 14
- 13 至 20
该方法应该给我
- 1到9
- 11 至 20
你猜它会被称为工会?我想方法签名可能看起来像这样:
我在这里查看了其他一些类似的问题,但我还没有找到它的实现。这个答案和同一问题的其他一些答案描述了算法,但我不太确定我是否理解这些算法。也不是特别擅长实现算法,所以我希望这里有人可以帮助我。