実行時間の計測


プログラム


  1. 患者が「治癒したか」をシミュレート

    import random
    
    def num_cured(p, q, r, s):          # r 人中 s 人が治癒するとき、p 人中何人治癒したか
      cured = 0                         # 治った人数
      for i in range(0, p):
        if random.randrange(0, r) < s:  # 治った
          cured = cured + 1
      return cured
    
  2. 仮想的実行によるp値の見積り

    def pvalue_simulated(p, q, r, s, n):  # n 回仮想的に実行して p 値を見積もる
      count = 0
      for i in range(0, n):
        m = num_cured(p, q, r, s)   # 1 回仮想的に実行して治った人数
        if m >= q:
          count = count + 1         # q 人以上治った回数を数える
      return count / n
    
  3. モンテカルロ法による円の面積計算

    import random
    
    def calc_pi(n):
      s = 0
      for i in range(0, n):
        x = random.random()
        y = random.random()
        # 点 (x,y) をランダムに選ぶ
        if x ** 2 + y ** 2 <= 1:   #原点からの距離 1 以下
          s = s + 1
      return s / n * 4
    
  4. モンテカルロ法による複雑な面積計算

    import random
    
    def calc_pi_k(n, k):
      s = 0
      for i in range(0, n):
        x = random.random()
        y = random.random()
        # 点 (x,y) をランダムに選ぶ
        if (x ** 2 + y ** 2 <= 1and y >= k):
          s = s + 1
      return s / n
    

2021年12月5日作成
2021年12月12日修正
伊知地 宏
Copyright (C) Hiroshi Ichiji, 2021. All rights reserved.