问题:如何编写一个函数来接收a和b作为输入并返回它们之间的所有整数。因此,假设我们有一个integers_inbetween行为像这样调用的函数,我们应该期待以下示例:
# Returns an array of integers in between a and b
integers_inbetween(1, 4)
[1] 2 3
Run Code Online (Sandbox Code Playgroud)
和
# Returns an array of integers in between a and b
integers_inbetween(4, 1)
[1] 2 3
Run Code Online (Sandbox Code Playgroud)
和
# Returns NULL if there are no integers inbetween a and b
integers_inbetween(3.5, 4)
[1] NULL
Run Code Online (Sandbox Code Playgroud)
如何在 R 中实现该逻辑?
我有一个矩阵由骰子 1 和骰子 2 的总和或 Y = D1 + D2 组成
outer(1:6, 1:6, "+")
Run Code Online (Sandbox Code Playgroud)
输出是:
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 2 3 4 5 6 7
[2,] 3 4 5 6 7 8
[3,] 4 5 6 7 8 9
[4,] 5 6 7 8 9 10
[5,] 6 7 8 9 10 11
[6,] 7 8 9 10 11 12
Run Code Online (Sandbox Code Playgroud)
我如何将它放在一个名为 Y 的数据框中,其中包含每个总和的总和和概率,例如:
Sum pSum
2 1/36
3 2/36
4 3/36
.
.
.
12 1/36
Run Code Online (Sandbox Code Playgroud)
当我计算 …
而不是使用循环在 R 中找到最少两个骰子,例如:
Min <- matrix(0, nrow=6, ncol=6)
d1 <- 1:6
d2 <- 1:6
for(k in 1:6){
for(j in 1:6){
Min[k,j] <- min( c(d1[k], d2[j]) )
}
}
Run Code Online (Sandbox Code Playgroud)
有没有更简单的方法或更短的代码来获得以下结果?
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 1 1 1 1 1
[2,] 1 2 2 2 2 2
[3,] 1 2 3 3 3 3
[4,] 1 2 3 4 4 4
[5,] 1 2 3 4 5 5
[6,] 1 2 3 4 5 6
Run Code Online (Sandbox Code Playgroud)