标签: range

是否有一种优雅的方法来排除范围的第一个值?

假设我的范围是0到10:

range = 0...10
Run Code Online (Sandbox Code Playgroud)

三个点表示排除最后一个值(10):

range.include? 10
=> false
Run Code Online (Sandbox Code Playgroud)

现在,有没有类似和优雅的方法来排除第一个值?
对于上面的例子,这将意味着以包括所有的值更大(>, >=)大于0且于10.

ruby range

12
推荐指数
2
解决办法
3519
查看次数

在视觉模式下,Vim在相对范围内操作的最佳方式是什么?

我经常使用以下内容删除,抽取和粘贴:

:3,6y
Run Code Online (Sandbox Code Playgroud)

从Vim 7开始,我已经切换到使用相对行号.我发现通过命令h,j,k,l等使用相对行编号要容易得多.

由于切换到相对行编号,我发现很难在绝对范围内操作(例如:3,6y).由于Vim正在显示相对行号,因此确定需要选择的绝对行号需要花费太长时间.

如果您的设置显示相对行号,那么在某个范围内使用视觉选择的最佳/最快方法是什么?天真地,我正在寻找类似的东西:

:-2,+8y 

(yank the lines from 2 lines above my current position to 
8 lines below my current position.)
Run Code Online (Sandbox Code Playgroud)

vim range

12
推荐指数
1
解决办法
1809
查看次数

Javascript:使用crypto.getRandomValues在一个范围内生成一个随机数

我知道你可以使用这个函数在一个范围内的JavaScript中生成一个随机数:

function getRandomInt (min, max) {
    return Math.floor(Math.random() * (max - min + 1)) + min;
}
Run Code Online (Sandbox Code Playgroud)

感谢IonuţG.Stan 在这里.

我想知道的是你是否可以使用crypto.getRandomValues()而不是Math.random()在一个范围内生成一个更好的随机数.我希望能够生成0到10之间的数字,或0到1,甚至10 - 5000(含).

你会注意到Math.random()产生一个如下数字:0.8565239671015732.

getRandomValues API可能会返回以下内容:

  • 231Uint8Array(1)
  • 54328Uint16Array(1)
  • 355282741Uint32Array(1).

那么如何将其转换回十进制数,以便我可以使用上面相同的范围算法?或者我需要一个新的算法?

这是我尝试的代码,但它不能很好地工作.

function getRandomInt(min, max) {       
    // Create byte array and fill with 1 random number
    var byteArray = new Uint8Array(1);
    window.crypto.getRandomValues(byteArray);

    // Convert to decimal
    var randomNum = '0.' + byteArray[0].toString();

    // Get number in range …
Run Code Online (Sandbox Code Playgroud)

javascript random cryptography range

12
推荐指数
5
解决办法
1万
查看次数

Angularjs,如何使用ng-repeat范围5到10

我像这样使用循环数:

<select>
  <option ng-repeat="n in [] | range:10" value="{{$index+1}}">{{$index+1}}</option>
</select>
Run Code Online (Sandbox Code Playgroud)

这是有效的,但我怎么能用ng-reapet(5到10)这样做?

<select>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
<option>10</option>
</select>
Run Code Online (Sandbox Code Playgroud)

loops numbers range angularjs ng-repeat

12
推荐指数
1
解决办法
4万
查看次数

Python 3,range().append()返回错误:'range'对象没有属性'append'

在Python 2.7中,以下工作没有问题:

myrange = range(10,100,10)
myrange.append(200)
print(my range)
Run Code Online (Sandbox Code Playgroud)

产量:[10,20,30,40,50,60,70,80,90,200]

相反,在Python 3.3.4中,相同的代码片段返回错误:'range'对象没有属性'append'

请问有人可以在Python 3.3.4中解释这个错误的原因,并在可能的情况下提供解决方案吗?

所需的输出:[10,20,30,40,50,60,70,80,90,200].

非常感谢,先生.

python append range python-2.7 python-3.x

12
推荐指数
2
解决办法
1万
查看次数

哨兵和结束迭代器有什么区别?

在阅读Eric Niebler的范围提议时,
我遇到了哨兵一词,作为最终迭代器的替代品.
我很难理解哨兵对末端迭代器的好处.
有人可以提供一个明确的例子,说明发送到表中的内容是不能用标准迭代器对完成的吗?

" 哨兵是过去的迭代器的抽象.哨兵是常规类型,可用于表示范围的结束.表示范围的哨兵和迭代器应为EqualityComparable.哨兵表示一个元素.迭代器我比较等于哨兵,我指向那个元素." - N4382

我认为哨兵在确定范围的结束时起着作用,而不仅仅是位置?

c++ iterator range sentinel c++17

12
推荐指数
2
解决办法
2271
查看次数

生成指定范围内的随机数 - 各种情况(int,float,inclusive,exclusive)

给定一个Math.random()函数,它返回一个介于[0,1)和min max值之间的数字来指定范围,我们如何为以下情况生成数字:

我们想要整数的情况:

  • A: (min,max) ?
  • B: [min,max) return Math.floor(Math.random() * (max - min)) + min;
  • C: (min,max] ?
  • D: [min,max] return Math.floor(Math.random() * (max - min + 1)) + min;

我们想浮动的情况:

  • A: (min,max) ?
  • B: [min,max) return Math.random() * (max - min) + min;
  • C: (min,max] ?
  • D: [min,max] ?

javascript random floating-point integer range

12
推荐指数
1
解决办法
647
查看次数

Python 3系列Vs Python 2系列

我最近开始学习python 3.
python 2中, range()函数可用于分配列表元素.

>>> A = []
>>> A = range(0,6)
>>> print A
[0, 1, 2, 3, 4, 5]
Run Code Online (Sandbox Code Playgroud)

python 3中,当使用range()函数时,这种情况正在发生

>>> A = []
>>> A = range(0,6)
>>> print(A)
range(0, 6)
Run Code Online (Sandbox Code Playgroud)

为什么会这样?
为什么python会做这个改变?
这是恩惠还是祸根?

python list range

12
推荐指数
1
解决办法
2万
查看次数

是否有特征或任何约定来检查范围或`view_facade`是否拥有东西?(例如getlines)

特定

auto empty_line = [](auto& str){ return str.size() == 0; };
Run Code Online (Sandbox Code Playgroud)

对于那个ranges::getlines返回拥有 view_facade其正面迭代器的缓冲区的拥有者的事实.

所以我们有义务在传递算法之前将这种范围变成左值.

auto line_range1 = ranges::getlines(std::cin);
auto iter1 = ranges::find_if_not(line_range1,empty_line);
auto input1 = std::stoi(*iter1);
Run Code Online (Sandbox Code Playgroud)

而且还有一个很酷的保护机制,可以防止所有解除引用迭代器的时间已经被破坏的数据,并使这些尝试编译时错误.

因此,当拥有view_facade作为rvalue传递给算法时,保护将参与解除引用.

这不会编译.

auto iter2 = ranges::find_if_not(ranges::getlines(std::cin),empty_line);
// at this point the `owning` range destroyed, 
// so as the buffer we (should've) hold (before!).

// So this won't compile
// auto input2 = std::stoi(*iter2);
Run Code Online (Sandbox Code Playgroud)

错误为:

<source>:19:29: error: no match for 'operator*' (operand …
Run Code Online (Sandbox Code Playgroud)

c++ range traits range-v3

12
推荐指数
1
解决办法
135
查看次数

Groovy系列,0.5步长

在Groovy中,指定一系列整数以及它们之间的0.5步是最常用的方式是什么?例如:1,1.5,2,2.5,3,3.5,4

编辑:澄清:作为最终结果,我需要一个范围对象用于Grails约束.虽然我认为列表也可以.

syntax groovy range

11
推荐指数
2
解决办法
9111
查看次数