Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R vector-从两个向量的差中求出最大正结果的计数_R_Vector_Count - Fatal编程技术网

R vector-从两个向量的差中求出最大正结果的计数

R vector-从两个向量的差中求出最大正结果的计数,r,vector,count,R,Vector,Count,我有两个向量 A = c(28427,19877,30709,18527,17409,14758,20873,18458,28587,17751,21672) 在不使用任何外部库的情况下,我需要以这种方式对A和B进行排序,以获得差分这两个向量后获得的+ve结果的最大可能计数 这里的结果应该是9,因为最多有9个结果将被证明是积极的 我尝试使用分治,但它需要很多时间来解决,而且我没有得到最佳逻辑。a=c(28427198773070918527174091475820873184588587177

我有两个向量

A = c(28427,19877,30709,18527,17409,14758,20873,18458,28587,17751,21672)
在不使用任何外部库的情况下,我需要以这种方式对A和B进行排序,以获得差分这两个向量后获得的+ve结果的最大可能计数

这里的结果应该是9,因为最多有9个结果将被证明是积极的

我尝试使用分治,但它需要很多时间来解决,而且我没有得到最佳逻辑。

a=c(284271987730709185271740914758208731845885871775121672)
a = c(28427,19877,30709,18527,17409,14758,20873,18458,28587,17751,21672)
b = c(407,2019,10539,15430,17994,20213,21865,26217,26619,30558,31674)

a_sorted <- sort(a, decreasing = T)
b_sorted <- sort(b, decreasing = T)

out <- data.frame(matrix(0, ncol = 3))
names(out) <- c("a", "b", "d")
k <- 1
j <- 1
for (i in 1:length(a)) {
  while (j <= length(a)) {
    d <- a_sorted[i] - b_sorted[j]
    # message(sprintf("i = %d; j = %d k = %d;\taa[i] = %s\tbb[j] = %s\td[k] = %s", i, j, k, a_sorted[i], b_sorted[j], d))
    if (d > 0) {
      out[k,] <- c(a_sorted[i], b_sorted[j], d)
      k <- k + 1
      j <- j + 1
      break
    }
    j <- j + 1
  }
}

out
#>       a     b     d
#> 1 30709 30558   151
#> 2 28587 26619  1968
#> 3 28427 26217  2210
#> 4 21672 20213  1459
#> 5 20873 17994  2879
#> 6 19877 15430  4447
#> 7 18527 10539  7988
#> 8 18458  2019 16439
#> 9 17751   407 17344
b=c(4072019105391543017994202132186526217266193055831674)
a_59143。你所尝试的&你得到的输出;2.预期产量?(不是图像,而是代码)?
a = c(28427,19877,30709,18527,17409,14758,20873,18458,28587,17751,21672)
b = c(407,2019,10539,15430,17994,20213,21865,26217,26619,30558,31674)

a_sorted <- sort(a, decreasing = T)
b_sorted <- sort(b, decreasing = T)

out <- data.frame(matrix(0, ncol = 3))
names(out) <- c("a", "b", "d")
k <- 1
j <- 1
for (i in 1:length(a)) {
  while (j <= length(a)) {
    d <- a_sorted[i] - b_sorted[j]
    # message(sprintf("i = %d; j = %d k = %d;\taa[i] = %s\tbb[j] = %s\td[k] = %s", i, j, k, a_sorted[i], b_sorted[j], d))
    if (d > 0) {
      out[k,] <- c(a_sorted[i], b_sorted[j], d)
      k <- k + 1
      j <- j + 1
      break
    }
    j <- j + 1
  }
}

out
#>       a     b     d
#> 1 30709 30558   151
#> 2 28587 26619  1968
#> 3 28427 26217  2210
#> 4 21672 20213  1459
#> 5 20873 17994  2879
#> 6 19877 15430  4447
#> 7 18527 10539  7988
#> 8 18458  2019 16439
#> 9 17751   407 17344