|
本帖最后由 煽情的扮演 于 2022-1-29 22:39 编辑
set.seed(666) /设置种子为666号,即为666号种子的结果将会发生,这个意思大概有可能代表着每个人的概率在活动出来时已经固定/
p <- c(.12, .12, .12, .11, .11, .11, .12, .07, .07, .03, .01, .01) /设置每个物品的概率/
B <- 100000 /设置一个代码/
x <- numeric(B) /设置一个代码/
for (i in 1:B) { /i会在1到B中/
sam <- sample(1:12, prob = p, replace = F) /从1到12中抽取一个,prob为概率,就是p那一排,replace=f代表着不放回的抽取/
x <- which(sam == 7) * 200 /这句话我不是太懂,这句话大概是指如果没有点到第7排的,就可以再点一次,每次200金币,在游戏里面的表示结果是6排2列都可以抽奖,每次消耗200金币/
}
theta <- sum(x) / B /设置了theta的计算公式/
se <- sqrt(var(x) / B) /设置了se的计算公式/
CI <- c(theta - 1.96 * se, theta + 1.96 * se) /设置了CI,并将这两个公式的结果组成了向量/
theta /输出theta/
CI /输出CI/
首先声明我是业余的,如果我翻译的有问题,出现了错误,就当我没说过这一段话。
这段代码是R语言,虽然我没学过这种语言,但因为学过其他的语言,再查查资料后大概能懂这段代码的意思。
根据我查的资料,这个抽奖是一个伪随机事件,意思是你抽龙字花多少金子,跟set.seed()有关。
关于伪随机和set.seed(),你可以这么理解:
现在有1,2,两个数字,进行不放回抽取2次
抽到的顺序为 1 2 2 1这2种情况,前面的为set.seed(1),后面的为set.seed(2)
然后来了10个人要进行抽取,但在抽取之前,他们10个人会被分配set.seed()这一函数,而括号中数字相同的人,他们的抽取结果也是相同的。
所以伪随机就是,系..统会先进行随机组合,每一个组合会赋予一个代号,如果有人来进行抽取,系..统会赋予这个人一个代号,所以不管他怎么抽取,实际上的结果,已经由set.seed()这一个函数所决定。
放在游戏中,你抽龙的花费已经由set.seed()确定了,我不知道刷新会不会改变set.seed()括号中的数字,但可以试一试。
最后,我这个理论是无法在游戏中验证的,理论上一共有12!=4 7900 1600 种可能,现在活人有没有1万都难讲,你要是想去验证,可以看看set.seed()括号中的数字是否一样,一样的时候,你再试试抽取的顺序是否是一样的。
|
|