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

Back to text page


  1. 内包表記によるリスト作成1

    乱数を用いて10から15の範囲の整数を一つ発生させ,1からその数までを要素として持つリストを作成しましょう.

    Random number: 15
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
    

    解答例

  2. 内包表記によるリスト作成2

    2桁の正の整数を10個発生させ,それらを要素として持つリストを作成しましょう.

    55 23 69 78 40 77 38 54 20 49
    

    解答例

  3. 例7-33の数値化

    教科書 p.191 の例 7-33 では文字列として数字を出力していますが,以下のように数値として1から7までの奇数と偶数を要素に持つリストを作るプログラムを作成しましょう.

    1 -2 3 -4 5 -6 7
    

    要素が None が7つの空のリストをまず生成して,そこに数値を代入しています.
    解答例

  4. 最大値と最小値
  5. max 関数と min 関数を使用して,乱数により発生させた2桁の正の整数10個の最大値と最小値を求めるプログラムを作成しましょう.

    Random numbers: 49 35 27 49 99 93 14 55 99 63 
    The maximum: 99
    The minimum: 14
    

    * による要素表示は f文字列の中に {} で埋め込むことはできません.
    解答例
  6. 2次元リスト生成

    内包表記を使用して2次元リストを作りましょう.8×8のサイズとし,要素は0から255の範囲の整数値とします.

     36  65  30 251 112 245 200  71 
     35 131   5 205  31 174 205  86 
     11  80 222 209 134  17  38 226 
    164  44 174 157  34  48 176 243 
     91  53 200 158 200 131 126 153 
    131 165 109 164  51  97  97  85 
     27  71  32 216 237 143 159 230 
    199 143  77 168  36 129   8  54
    

    解答例 1

    解答例 2 (教科書 p.202 にある文字列化を使用した例)

  7. Maxプーリング

    機械学習の基礎の基礎みたいなところを扱ってみましょう.現在主流のディープラーニングでは畳み込みニューラルネットワークという処理を利用しますが,その畳み込み処理の部分にある Max pooling という作業を体験してみましょう.ある範囲内の最大値を保存する処理です.

    前問の方法で作成した行列に対して,2×2の重ならないエリアごとの最大値を持つリストを作り,以下のように値を表示させましょう.

     83  89 102  57 178  58 110 170 
    114  33 188  26 238 105  36 106 
     11  86 104 109  91 176  40 206      
    246  11  62 213  49  71  84 133      
    160 186 190  82 245  45 253 103      
     78 185 129  60  34 165 167  45      
    252  15 154  87 191 194  38 181 
    206 100 138 255 171 223 132  75 
    
    114 188 238 170
    246 213 176 206
    186 190 245 253
    252 255 223 181
    

    元のリストの左上2×2の領域は

    83 89
    114 33

    ですから,その最大値は114となり,下のリストの左上の要素が114になっています.また,次は

    102 57
    188 26

    なので,その最大の188が下側のリストの要素になっています.このように進めていくので,1行目と2行目の数値の処理が終わると,3行目と4行目の2×2の重ならない領域ごとに最大値を出すことになり,下側のリストは4行4列です.

    解答例


Back to text page