不知你要用哪个工具实现这个过程呢?我随手用R模拟了下你描述的这个计算,你看看能用不?(未考虑代码优化)
a <- c(1:500)
b <- rnorm(500,150,18)
c <- rnorm(500,88,12)
t <- data.frame(a,b,c)
names(t) <- c("id","capacity","cost")
mydata <- t[order(t$cost),]
result <- ""
for (i in 1:500){
temp <- sum(mydata$capacity[1:i])
if (temp<=5000) {
result <- mydata[1:i,]
}
else break
}