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

Back to text page


  1. リストからタプルへの置き換え

    4月24日の演習問題 v. と vi. のリストをタプルに置き換えたプログラムを作成しましょう.

    じゃんけん解答例

    トランプ解答例

  2. 積集合

    2桁の正の整数をランダムに20個ずつ2回発生させ,両者に共通する数値を表示するプログラムを作成しましょう.

    [21, 24, 84, 67, 67, 50, 62, 32, 33, 96, 76, 25, 19, 71, 25, 82, 28, 49, 47, 33]
    [51, 69, 52, 39, 85, 79, 30, 34, 71, 98, 43, 66, 49, 34, 91, 27, 94, 32, 82, 88]
    {32, 49, 82, 71}
    

    解答例

  3. 乱数の重複の頻度

    10, 100, 1000, 10000, 100000, 1000000のどれかの整数を乱数を用いて発生させ,1 からその数までの整数を乱数によりその数分発生させることを考えます.どのくらいの頻度で乱数の重複が起こるのかを調べるプログラムを作成しましょう.

    Total numbers: 1000000
    Elements of set: 632093
    Overlapped frequency:  36.8 %
    

    リストを集合にすると,要素が何個重複していたかがわかります.
    解答例 1

    解答例 2

  4. サイコロの目の頻度辞書版

    リストを使用してサイコロのそれぞれの目の頻度を調べるプログラムを作成しましたが,今回は辞書を使用して行ってみましょう.リストでは先頭のインデックスが 0 となってしまいますが,辞書ではサイコロの目の通りに 1 から 6 までのキーでできます.

    5 4 3 2 1 3 3 5 3 1 2 5 6 1 4 6 2 4 4 1 1 2 6 5 1 2 2 3 3 6 1 6 6 4 1 2 1 6 3 1 5 5 6 1 5 1 4 5 1 4 5 3 5 2 1 6 3 3 6 4 4 3 5 3 2 5 4 4 2 6 3 1 2 1 4 2 2 5 3 6 3 6 3 4 2 1 3 6 6 2 5 4 3 3 5 2 2 6 6 6
     1  2  3  4  5  6 
    17 17 19 14 15 18
    

    教科書の p.228 の List 8-15 を参考にして,頻度の出力では教科書 p.227 の List 8-12 にある keys() と values() 関数を使用しています.

    解答例1

    解答例2(教科書 p.228 List 8-15 にある not in を使用)

  5. 集合の差分
  6. 1から100の範囲の整数を乱数を用いて100個発生させ,小さい順に表示させます.次に,先ほど乱数で出なかった整数を表示するプログラムを作成しましょう.

    Random numbers: 1 2 2 4 5 6 7 7 7 8 9 9 10 11 12 14 15 15 17 18 18 22 23 23 23 24 25 27 29 29 29 30 32 32 32 34 34 36 36 39 39 40 40 41 42 43 43 46 47 49 49 56 56 58 58 58 59 61 62 62 63 64 65 65 67 67 72 72 73 74 75 75 76 77 77 78 79 80 80 83 84 84 85 85 86 87 87 87 88 88 94 95 97 98 99 99 99 100 100 100
    Numbers not appeared above: 3 13 16 19 20 21 26 28 31 33 35 37 38 44 45 48 50 51 52 53 54 55 57 60 66 68 69 70 71 81 82 89 90 91 92 93 96

    解答例

  7. pop メソッドの確認
  8. 教科書の p.233 にある pop メソッドは無作為に選ばれた要素を削除とされていますが,実際にどのように要素が削除されるのか,確認してみましょう.とりあえず要素が10個の集合を作成し,pop メソッドを9回実施してどのように要素が消されているのか,確認してみてください.

    解答例1(最初に作った集合から要素を1個ずつ pop で削除)

    解答例2(毎回集合を作って pop で削除)


Back to text page