我有 3 个分类稀有度,概率是这样的
class S has 10% probability
class A has 30% probability
class B has 60% probability
Run Code Online (Sandbox Code Playgroud)
所以我这样编码
class S has 10% probability
class A has 30% probability
class B has 60% probability
Run Code Online (Sandbox Code Playgroud)
我的客人的结果是非常正确的(cmiiw)
B
A
B
B
S
B
A
S
B
A
B
Run Code Online (Sandbox Code Playgroud)
但当我应该添加更多类别并将 S 类别概率更改为 1% 时,我变得很困惑
池现在变成
class S has 1% probability
class A has 29% probability
class B has 30% probability
class C has 40% probability
Run Code Online (Sandbox Code Playgroud)
我不确定我pool之前应该创建类似池的变量,因为 1% 是 1/10 不是整数。
急需帮助,谢谢!
函数f()返回0或1,每个概率为0.5.
写一个函数g(),返回0,概率为p .. ??
假设p被给出并且位于0和1之间.
假设我有一个应该代表硬币翻转的算法.我如何确定这枚硬币的偏见?具体来说,我已经在这个JSFiddle中编写了算法.
小提琴进行了一系列的20次测试.每次测试都会将硬币翻转100次并计算结果.在本系列的最后,它报告Heads/Tails了所有测试中翻转的总数.这个结果似乎接近1(来自双方),但我没有对此进行过严格的测试.
注意,这不是功课.这纯粹是个人兴趣.
我想用histfit从图中得到密度曲线的方程.
我看到使用ksdensity函数可以得到一个点向量.这是最好的方法吗?
前言
这个问题与(P)RNG和rand().的行为无关.它是关于使用以模数均匀分布的两个值的幂.
介绍
我知道不应该使用modulo %将值从一个范围转换为另一个范围,例如从rand()函数中得到0到5之间的值:会有偏差.它在这里解释https://bitbucket.org/haypo/hasard/src/ebf5870a1a54/doc/common_errors.rst?at=default并在这个答案中为什么人们说使用随机数发生器时存在模偏差?
但是今天在调查了一些看起来错误的代码之后,我已经制作了一个工具来演示模数的行为:https://gitorious.org/modulo-test/modulo-test/trees/master 并发现它不够清楚.
骰子只有3位
我检查了范围0..5中的6个值.编码这些值只需要3位.
$ ./modulo-test 10000 6 3
interations = 10000, range = 6, bits = 3 (0x00000007)
[0..7] => [0..5]
theorical occurences 1666.67 probability 0.16666667
[ 0] occurences 2446 probability 0.24460000 ( +46.76%)
[ 1] occurences 2535 probability 0.25350000 ( +52.10%)
[ 2] occurences 1275 probability 0.12750000 ( -23.50%)
[ 3] occurences 1297 probability 0.12970000 ( -22.18%)
[ 4] occurences 1216 probability 0.12160000 …Run Code Online (Sandbox Code Playgroud) 我一直在努力寻找答案.我保证我会尝试从解决方案中学习.为了学习,我想了解如何使用显式循环,但如果你想分享矢量化方法作为奖励,也非常感谢.
假设我每天都要玩一次游戏,我知道每天获胜的可能性.我想要一个函数,它接受概率向量并至少在一天内返回累积成功概率.因此,如果我连续玩了3天并且胜利的概率是每天0.5,那么我的函数应该返回"0.875,0.75,0.5"
这是我最近尝试编写此函数的失败:
prob_cum <- function(prob_today) {
p_cum <- rep(0, length(prob_today))
for (i in 1:length(prob_today)) {
for (j in i:length(prob_today)) {
p_cum[j] <- p_cum[j-1] - ((1 - p_cum[j-1]) * prob_today[j])
}
}
p_cum
}
prob_daily <- c(.5,.5,.5)
prob_cum(prob_daily)
Run Code Online (Sandbox Code Playgroud) 问题:我需要掷3个骰子.如果两个(或三个)骰子返回相同的数字,则停止.如果3个骰子都是唯一的(例如2,4和6),则再次滚动.执行此操作,直到双打/三重滚动,或7次,以先到者为准.
注意:我是一个python newb.
这是我到目前为止所做的,但所有这一切实际上产生了216种可能的组合:
import itertools
all_possible = list(itertools.permutations([1,2,3,4,5,6],3))
input = raw_input()
print all_possible
Run Code Online (Sandbox Code Playgroud)
这会产生这种类型的输出:
[(1, 2, 3), (1, 2, 4), (1, 2, 5), (1, 2, 6), (1, 3, 2), (1, 3, 4), (1, 3, 5), (1, 3, 6), (1, 4, 2), (1, 4, 3), (1, 4, 5), (1, 4, 6), (1, 5, 2), (1, 5, 3), (1, 5, 4), (1, 5, 6), (1, 6, 2), (1, 6, 3), (1, 6, 4), (1, 6, 5), (2, 1, 3), (2, 1, …
我想将betanormal分配到我的数据中
X=c(5.20 , 6.80, 11.00, 21.00 ,25.50, 28.50, 30.90 ,30.90, 27.20, 17.70 ,10.50 , 6.70, 5.00, 8.00 ,14.30, 20.90 ,24.10 ,28.40 ,29.80, 30.80 ,26.80 ,20.50, 12.50 , 9.30, 19.20 , 5.60, 9.20 ,1.80 ,15.80 ,22.20 ,27.90, 30.60 ,31.10 ,28.80 ,23.30, 13.40, 4.30 , 6.80 ,7.20 ,10.30 ,17.00, 21.20 ,27.40 ,32.10, 30.20 ,25.50, 22.20, 11.30, 6.00 ,6.60 , 9.80 ,14.20 ,16.10 ,22.00 ,29.30 ,29.30 ,31.30, 26.20, 20.30 ,13.30, 5.30 ,5.00, 4.80 ,13.00 ,18.90 ,22.40, 28.30, 32.40 ,30.20 ,27.20 ,21.30, 12.00, 10.20 …Run Code Online (Sandbox Code Playgroud) 如何从(1到100)随机生成整数,例如,30%如果数字的范围从(1到50),而概率70%是从(50到100)范围,则如何生成概率?
int integer = new Random().nextInt(100) + 1;
// Probabilities
..... code here ....
Run Code Online (Sandbox Code Playgroud)
我该怎么做?
我有以下片段来计算转换矩阵的稳定状态:
import numpy as np
import scipy.linalg as la
if __name__ == "__main__":
P = np.array([[0.5, 0.2 , 0.3, 0],
[0.5, 0 , 0.1 , 0.4],
[0.6, 0.1, 0, 0.3],
[0.5, 0.2, 0.3, 0]])
# Sanity check:
assert np.sum(P, axis=1).all() == 1.0
print la.eig(P,left=True)[1]
Run Code Online (Sandbox Code Playgroud)
它打印:
[[ -8.78275813e-01 -7.07106781e-01 -5.00000000e-01 1.47441956e-01]
[ -2.51874610e-01 -1.58270385e-16 -5.00000000e-01 -2.94883912e-01]
[ -3.50434239e-01 -2.60486675e-16 5.00000000e-01 -5.89767825e-01]
[ -2.05880116e-01 7.07106781e-01 5.00000000e-01 7.37209781e-01]]
Run Code Online (Sandbox Code Playgroud)
如果我理解正确,那么第一列确实是稳定状态.对于我处于消极状态的概率,我没有意义.我错过了什么?