p 値の計算,組み合わせの数の計算,再帰関数


プログラム


  1. p 値の計算

    def pvalue(p, q, r, s):    #p値の計算
      sum = 0
      for k in range(q, p + 1):
        pk = ((s / r) ** k * (1 - s / r) ** (p - k) * comb_factorial(p, k))
        sum = sum + pk
      return sum
    
  2. 組合せ数の計算方法 (1) : 階乗

    def factorial(n):           # nの階乗
      f = 1.0
      for i in range(2, n + 1):
        f = f * i
      return f
    
    def comb_factorial(n, k):
      x = factorial(n)
      y = factorial(k)
      z = factorial(n - k)
      return (x / y / z)  
    
  3. パスカルの三角形を描くプログラム

    import ita
    
    def comb_pascal(n, k):
      table = ita.array.make2d(n + 1, n + 1)       # 表を準備
      for i in range(0, n + 1):
        for j in range(0, i + 1):                  # n や k が小さい場合から順に
          table[i][j] = comb_fill(table, i, j)     # 表を埋める
      return table[n][k]
    
    def fill(table, n, k):
      if (k == 0 or n == k):
        return 1
      else: 
        x = table[n - 1][k - 1]
        y = table[n - 1][k]
        return (x + y)
    
  4. 漸化式による計算:再帰関数

    def comb_rec(n,k):
      if (k == 0 or n == k): 
        return 1
      else:
        return (comb_rec(n - 1, k - 1) + comb_rec(n - 1, k))
    

2021年11月28日作成
伊知地 宏
Copyright (C) Hiroshi Ichiji, 2021. All rights reserved.