由于这实际上是一个关于如何在R中有效执行计算的问题,我将从等式开始,然后在代码之后为那些发现有用或有趣的人提供问题的解释.
我在R中编写了一个脚本,使用以下函数生成值:
如您所见,该函数是递归的,涉及双重求和.它适用于大约15或更低的小数字,但执行时间越长,在n和的值越高t.我需要能够从1到30 执行每个n和t对的计算.有没有办法编写一个不需要几个月才能执行的脚本?
我目前的脚本是:
explProb <- function(n,t) {
prob <- 0
#################################
# FIRST PART - SINGLE SUMMATION
#################################
i <- 0
if(t<=n) {
i <- c(t:n)
}
prob = sum(choose(n,i[i>0])*((1/3)^(i[i>0]))*((2/3)^(n-i[i>0])))
#################################
# SECOND PART - DOUBLE SUMMATION
#################################
if(t >= 2) {
for(k in 1:(t-1)) {
j <- c(0:(k-1))
prob = prob + sum(choose(n,n-k)*((1/6)^(j))*((1/6)^(k-j))*((2/3)^(n-k))*explProb(k-j,t-k))
}
}
return(prob)
}
MAX_DICE = 30
MAX_THRESHOLD = 30
probabilities = matrix(0,MAX_DICE,MAX_THRESHOLD)
for(dice in 1:MAX_DICE) …Run Code Online (Sandbox Code Playgroud) 我正在玩Android以学习API,我正在尝试编写一个可以监听音频事件变化的活动.例如,当您按下按钮时,我创建的活动会播放随机铃声.该按钮显示一个文字"随机铃声",但是当你按下按钮时它会显示"停止"并按下它当然会停止播放铃声.
然而,问题是当铃声自行停止播放时,按钮仍然显示"停止".
我环顾四周试图找到一个可以在铃声停止播放时收听的事件监听器,但我似乎无法找到一个.我已经看到了一些关于创建自己的听众的信息,但我对此并不感兴趣(现在对我来说有点先进).
是否存在此类型的事件侦听器?
想象一下,我有一张记录服装店交易的表格.每个项目有不同的种类(如不同的颜色).我想写一个查询,它将返回每件商品的销售数量,但也告诉我每种商品的销售颜色有多少.
所以,如果我有一个这样的表:
+------------+
|transactions|
+------+-------+
| item | color |
+------+-------+
|shirt | red |
|shirt | red |
|shirt | blue |
|shirt | green |
|hat | blue |
|hat | red |
|pants | blue |
|pants | blue |
|pants | blue |
+------+-------+
Run Code Online (Sandbox Code Playgroud)
我想要一个看起来像这样的结果:
+------+-------+--------+
| item | count | colors |
+------+-------+--------+
|shirt | 4 | 3 |
|hat | 2 | 2 |
|pants | 3 | 1 |
+------+-------+--------+
Run Code Online (Sandbox Code Playgroud)
获得每件商品的计数很容易.我知道我可以使用如下查询:
SELECT item, …Run Code Online (Sandbox Code Playgroud)