在向量中找到第一个增加的值
Find first increasing value in vector
我通过
从均匀分布中抽取随机样本
u <- runif (1000,0,1)
现在我要计算这个随机变量的值
N = min_n {n : u_n > u_{n-1}}
编辑
假设我抽取了一个大小为 10 的随机样本。
所以,我有 u= (u_1,u_2,u_3,...,u_10)
。现在我想找到 u_n > u_{n-1}
的最小值 n
如果您取差值(使用 diff
),那么您正在寻找差值大于 0 的地方。我们搜索第一次发生的情况
u <- c(.5, .4, .3, .6)
min(which(diff(u) > 0))
这给了我们 3,它接近我们想要的但不完全是。因为这将 return 1 如果第一个差异大于 0 我们真正想要做的是将结果加 1
min(which(diff(u) > 0))) + 1
这应该给我们想要的。如果您的序列严格下降,这将发出警告,因为它找不到满足条件的值。我们可以在一些测试中编写代码,并在这种情况下决定适当的输出,但我将把它留作 reader.
的练习。
我通过
从均匀分布中抽取随机样本u <- runif (1000,0,1)
现在我要计算这个随机变量的值
N = min_n {n : u_n > u_{n-1}}
编辑 假设我抽取了一个大小为 10 的随机样本。
所以,我有 u= (u_1,u_2,u_3,...,u_10)
。现在我想找到 u_n > u_{n-1}
n
如果您取差值(使用 diff
),那么您正在寻找差值大于 0 的地方。我们搜索第一次发生的情况
u <- c(.5, .4, .3, .6)
min(which(diff(u) > 0))
这给了我们 3,它接近我们想要的但不完全是。因为这将 return 1 如果第一个差异大于 0 我们真正想要做的是将结果加 1
min(which(diff(u) > 0))) + 1
这应该给我们想要的。如果您的序列严格下降,这将发出警告,因为它找不到满足条件的值。我们可以在一些测试中编写代码,并在这种情况下决定适当的输出,但我将把它留作 reader.
的练习。