【发布时间】:2021-12-27 10:02:37
【问题描述】:
我想使用 for 循环/while 循环/ifelse(或任何其他方法)进行一些模拟,以获取特定区间的元素总数。如果您能帮助我,请提前感谢您!我一直在为这个问题苦苦挣扎!
第二组五个数的元素和第一组五个数的元素之间的差必须大于1,那么第三组的元素的差也必须大于1五个数字和第二组五个数字的元素,以此类推为以下五个数字组
获取区间的代码:
set.seed(50)
a=sort(runif(10,0,1))
b=sort(runif(30,1,4))
total=c(a,b)
例如,从图中的区间来看,total[1]、total[2]、total[3]、total[4]和total[5]是我的前5个数字,那么我接下来的5个数字必须相差大于一个与前 5 个数字相比。因此,接下来的 5 个数字必须是 total[11]、total[12]、total[13]、total[14]、total[15]。那么第 11 个数字必须是 total[27],因为 total[27] 是第一个与 total[11] 相比相差超过 1 的元素。
请问有没有办法得到total[1]、total[2]、total[3]、total[4]和total[5]、total[11]、total[12]、... ,total[27],....?无需手动计数
【问题讨论】:
-
您写道,数字之间的差必须大于 1,但第 5 个数字总共是 0.43765986,第 11 个数字是 1.22237104。差值小于一。还是我错过了什么?
-
这里可能没有解释清楚。第一组五个数字的第一个元素和第二组 5 个数字的第一个元素的差必须大于 1。所以第一组五个数的第 5 个元素与第二组五个数的第 5 个元素的差必须大于 1。因此,第 5 个数字必须与此处(区间内)的第 15 个元素进行比较,而不是与区间中的第 11 个元素进行比较。第 11 个元素仅与第 1 个元素比较,然后第 12 个元素与第 2 个元素进行比较,依此类推...
-
我会慢慢消化和学习。谢谢!