プログラミング入門II 演習課題 2024.06.26

Back to text page


  1. import 文の記述方法 復習
  2. 乱数の発生をこれまで何度も行ってきましたが,モジュール名が長いし,関数名も文字数が多いので,それをそれぞれ2文字に短縮してみましょう.3桁の正の整数を乱数を用いて発生させる簡単なプログラムでモジュール名を2文字にするものと,別名で関数を2文字にするものをそれぞれ作ってみましょう.

    A random number with 3 digits: 166
    

    解答例 モジュール名短縮

    解答例 関数名短縮

  3. さまざまな関数の呼び出しの簡略化
  4. 2桁の正の整数を20個発生させ,その平均値,中央値,また,不偏分散と標本標準偏差を求めますが,Python にあらかじめ組み込まれているモジュールの関数を使用してみましょう.どのようなモジュールがあるのかを検索してみてください.また,呼び出し時にはなるべく簡単になるよう,import 文も工夫しましょう.

    Random numbers with 2 digits:  70 48 56 43 70 30 65 79 81 71 31 74 72 21 32 98 96 53 90 75
    Mean: 62.8
    Median: 70.0
    Variance: 512.9
    Standard deviation: 22.6
    

    解答例

  5. 中心極限定理
  6. 一様分布な乱数を発生させる randint 関数ですが,一様分布な乱数の平均値を何度か求めていくと,平均値の平均値は正規分布に従う値になります.(中心極限定理)

    10個の2桁の正の整数を発生させることを10回行って,5回目以降乱数が増えるたびに平均値の標準偏差の値が落ち着いていくかどうかを観察するプログラムを作成しましょう.

     1:  59 93 20 90 93 75 56 66 71 12 63.5 
     2:  54 27 32 87 81 10 43 60 71 60 52.5 
     3:  27 21 28 58 44 70 61 58 82 77 52.6 
     4:  63 74 80 24 97 86 92 81 67 47 71.1 
     5:  28 46 98 42 11 49 50 40 81 36 48.1 57.6
     6:  51 74 93 57 87 74 32 19 98 15 60.0 58.0
     7:  79 78 47 89 51 29 53 81 33 57 59.7 58.2
     8:  57 56 95 64 42 45 88 49 97 20 61.3 58.6
     9:  44 27 34 93 58 56 83 57 44 22 51.8 57.8
    10:  44 56 15 78 45 11 26 88 16 75 45.4 56.6
    

    解答例

    授業中に追加で説明を行った標準偏差も計算するバージョンは,下のような結果表示をするものでした.

     1:  52 57 77 17 91 17 27 20 98 89  54.5  
     2:  96 24 25 98 81 63 24 11 20 47  48.9  3.96  
     3:  95 48 80 33 41 90 72 72 67 80  67.8  9.71  
     4:  59 33 89 54 48 46 73 81 79 80  64.2  8.69  
     5:  91 41 14 74 60 90 29 10 26 74  50.9  8.32  57.3   
     6:  26 78 55 56 72 12 44 53 67 65  52.8  7.67  56.5   0.53
     7:  11 20 23 27 86 36 79 93 91 80  54.6  7.03  56.2   0.53
     8:  43 25 91 70 82 42 15 28 49 97  54.2  6.55  56.0   0.55
     9:  78 83 56 96 25 25 45 44 41 77  57.0  6.14  56.1   0.51
    10:  88 22 72 15 59 23 45 78 22 66  49.0  6.21  55.4   0.62
    

    解答例

  7. 正規分布に従う乱数
  8. Python の random モジュールには正規分布に従う乱数(浮動小数点数)を発生させる gauss 関数が用意されています.gauss 関数は引数に平均値と標準偏差を与えて使用します.

    今,平均値が 50 で標準偏差が 10 の整数の乱数を1000個発生させて,その度数分布が実際に正規分布となっているかを確認するプログラムを作成しましょう.

      1 -    0 -    0
      2 -    0 -    0
      3 -    0 -    0
      4 -    0 -    0
      5 -    0 -    0
      6 -    0 -    0
      7 -    0 -    0
      8 -    0 -    0
      9 -    0 -    0
     10 -    0 -    0
     11 -    0 -    0
     12 -    0 -    0
     13 -    0 -    0
     14 -    0 -    0
     15 -    0 -    0
     16 -    1 -    1
     17 -    1 -    2
     18 -    0 -    2
     19 -    0 -    2
     20 -    0 -    2
     21 -    0 -    2
     22 -    1 -    3
     23 -    1 -    4
     24 -    1 -    5
     25 -    0 -    5
     26 -    4 -    9
     27 -    1 -   10
     28 -    4 -   14
     29 -    4 -   18
     30 -    5 -   23
     31 -    5 -   28
     32 -    6 -   34
     33 -    7 -   41
     34 -   12 -   53
     35 -   14 -   67
     36 -   10 -   77
     37 -   11 -   88
     38 -   14 -  102
     39 -   21 -  123
     40 -   23 -  146
     41 -   28 -  174
     42 -   22 -  196
     43 -   34 -  230
     44 -   34 -  264
     45 -   41 -  305
     46 -   32 -  337
     47 -   56 -  393
     48 -   32 -  425
     49 -   43 -  468
     50 -   48 -  516
     51 -   39 -  555
     52 -   37 -  592
     53 -   45 -  637
     54 -   35 -  672
     55 -   33 -  705
     56 -   29 -  734
     57 -   25 -  759
     58 -   32 -  791
     59 -   22 -  813
     60 -   22 -  835
     61 -   24 -  859
     62 -   11 -  870
     63 -   17 -  887
     64 -   18 -  905
     65 -   15 -  920
     66 -   14 -  934
     67 -   16 -  950
     68 -   12 -  962
     69 -    7 -  969
     70 -    6 -  975
     71 -    4 -  979
     72 -    5 -  984
     73 -    8 -  992
     74 -    2 -  994
     75 -    3 -  997
     76 -    0 -  997
     77 -    1 -  998
     78 -    0 -  998
     79 -    0 -  998
     80 -    1 -  999
     81 -    0 -  999
     82 -    0 -  999
     83 -    0 -  999
     84 -    1 - 1000
     85 -    0 - 1000
     86 -    0 - 1000
     87 -    0 - 1000
     88 -    0 - 1000
     89 -    0 - 1000
     90 -    0 - 1000
     91 -    0 - 1000
     92 -    0 - 1000
     93 -    0 - 1000
     94 -    0 - 1000
     95 -    0 - 1000
     96 -    0 - 1000
     97 -    0 - 1000
     98 -    0 - 1000
     99 -    0 - 1000
    100 -    0 - 1000
    

    左列は1から100までの数で,中央列がその数が出た回数,右列は累積度数です.

    フィルター関数を使用して,反復処理の利用を減らしましょう.

    解答例

  9. 二項分布とグラフ
  10. 正規分布と似た形になるものに二項分布があります.コインを10枚投げて表が何枚出たかを数える作業を100回行った時の,表の枚数とその頻度を乱数を用いてシミュレートしてみましょう.以下のように結果を表示するものとし,グラフを表示する部分をモジュールとして独立させましょう.

    Number of head:   0   1   2   3   4   5   6   7   8   9  10 
    Frequency:        0   0   7  12  24  23  19  11   4   0   0 
    
    Histogram of head frequency of flipped 10 coins
    
      0         10        20        30        40        
    -------------------------------------------
     0|
     1|
     2|*******
     3|************
     4|************************
     5|***********************
     6|*******************
     7|***********
     8|****
     9|
    10|
    

    本体解答例

    モジュール解答例


Back to text page