我怎樣才能找到兩個數字的所有組合,使得兩個值的總和等于tot_max <= 16(最大,允許小于)并且兩者之間的比率為rat=0.5.
這樣的例子是:
V1 V2 ratio(V1/V2) sum
1 2 0.5 3. OK
2 4 0.5 6. OK
3 6 0.5 9. OK
4 8 0.5 12. OK
8 16 0.5 24. NOT OK (over 16)
這兩個數字(V1 和 V2)應該是整數并且大于 0。
如何創建 R 代碼以便它可以容納不同的值tot_max和rat?
uj5u.com熱心網友回復:
這是一道數學題,不一定是編程題
你有x y < 16和。在這三個兩個條件下,做代數會給你:和。x/y = 0.5x, y > 01 <= x <= 5y = 2x
所以:
x <- seq(5)
y <- 2*x
data.frame(x, y, sum = x y, ratio = x/y)
x y sum ratio
1 1 2 3 0.5
2 2 4 6 0.5
3 3 6 9 0.5
4 4 8 12 0.5
5 5 10 15 0.5
uj5u.com熱心網友回復:
df <- expand.grid(V1=1:15, V2=1:15)
df <- df[ df$V1 df$V2 <= 16 & df$V1 / df$V2 == 0.5, ]
df
#> V1 V2
#> 16 1 2
#> 47 2 4
#> 78 3 6
#> 109 4 8
#> 140 5 10
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/520447.html
標籤:r算法组合学
