2013-07-31 3 views
0

으로 표시 게임 디자인 문제에 대해서는 이항 분포를 더 잘 검사해야합니다. R를 사용하여, I는 해당 이차원 테이블을 구축 할 필요가 - (다이의면의 수) (주사위 수가 압연), '양측'고정 파라미터 '풀'감안할 가지고이항 분포표를 R

  • 행에서 -> (0에서 풀에 이르기까지) 성공의 수는

내가 계산하는 방법을 알고 -> 성공을위한 최소 열에서

  • (측면 0에 이르기까지, 그것은 이산 분포입니다) 그것은 하나의 작업으로,하지만 전체 테이블을 채우기 위해 반복하는 방법에 대해 잘 모르겠습니다.

    편집 : 나는 성공의 수를 얻는 확률 p를 계산하고 싶다고 말하고 싶지 않다.

  • +0

    프로그래밍 문제 인 것처럼 보입니다. 그렇다면 스택 오버플로에서 더 잘 처리 할 수 ​​있으며 중재자가이 질문을 마이 그 레이션 할 수 있습니다 (이 게시물에 플래그를 지정하고 SO에 다시 게시하지 않음). – chl

    +1

    당신이 시도한 것을 보여주십시오. – Thomas

    +0

    한 가지 방법은 적어도 한 번만 모든 값을 굴릴 때까지 계속 진행하는 것입니다. –

    답변

    0

    좋아,이 간단한 해결책이 될 수 있다고 생각합니다. 열에 대한 주사위 굴림 (p)의 행 및 성공 임계 값에 대한 성공률을 나타냅니다.

    poolDistribution <- function(n, sides=10, digits=2, roll.Under=FALSE){ 
        m <- 1:sides 
        names(m) <- paste(m,ifelse(roll.Under,"-", "+"),sep="") 
        s <- 1:n 
        names(s) <- paste(s,n,sep="/") 
        sapply(m, function(m.value) round((if(roll.Under) (1 - pbinom(s - 1, n, (m.value)/sides))*100 else (1 - pbinom(s - 1, n, (sides - m.value + 1)/sides))*100), digits=digits)) 
    
    0

    이렇게하면 절반이됩니다.
    실제로 어떤 작업을했는지 표시하지 않았지만 R을 처음 사용하는 경우 다른 벡터에 대한 인덱스로 값 벡터를 사용할 수 있다는 사실을 놓칠 수도 있습니다. 이로 인해 문제의 일부가 쉽게 해결됩니다.

    pool <- 3 
    sides <- 20 # <cough>D&D<cough> 
    
    
    # you need to strore the values somewhere, use a vector 
    NumberOfRollsPerSide <- rep(0, sides) 
    names(NumberOfRollsPerSide) <- 1:sides # this will be useful in table 
    
    ## Repeast so long as there are still zeros 
    ##  ie, so long as there is a side that has not come up yet 
    while (any(NumberOfRollsPerSide == 0)) { 
        # roll once 
        oneRoll <- sample(1:sides, pool, TRUE) 
    
        # add (+1) to each sides' total rolls 
        # note that you can use the roll outcome to index the vector. R is great. 
        NumberOfRollsPerSide[oneRoll] <- NumberOfRollsPerSide[oneRoll] + 1 
    } 
    
    # These are your results: 
        NumberOfRollsPerSide 
    

    나는이 숙제 아닌 희망) 은 모든 이제 카운트가 처음 등장하는 롤 번호를 각 측면에 대해, 할 일은 남아있다. 어떻게해야한다고 생각하십니까?

    +0

    thex, 내 숙제가 아닙니다. 불행히도 저는 대학에 가기 엔 너무 늙었습니다.) 우리는 방금 RPG * 기침 * 비 D20 기반 * 기침 * 디자인 활동에 통계적으로 더 엄격하게 적용하기로 결정했습니다. 나는 R에 완전히 익숙하지 않지만, 보통은 실제 프로그래밍보다는 분석을 위해 사용합니다. 하지만 지금 코드를 사용해보십시오! :) 당신의 대답은 tnx! –

    +0

    이것은 내가 계산할 필요가없는 동안 (나는 그에 따라 질문을 편집했다), 코드 스 니펫은 분석 할 필요가있는 다른 것을 위해 여전히 유용하다! Tnx가 ​​귀하의 기여에 할당합니다! –

    +0

    분명히 D & D라면 3d6 ​​* AHEM * –