プログラミング入門I
2024.10.28
乱数
先週は解答用紙の使用法の確認作業を行ってもらいましたが,いくつかの不備が見られました.実際の提出ではちゃんと修正して下さい. 実行時エラー 実行させてエラーになるものは採点しません.必ず自分で動作を確認してから提出してください. b2449(エディタとシェルの区別がついていない) 解答用紙の不使用・改ざん 解答用紙は自分で勝手に変更しないでください.上部のハッシュ # でコメントアウトした部分と最後のハイフンラインは必須です.解答用紙を使用しなかったり,改ざんしたりすると採点の対象外となりますので,注意してください. b2422 b2461 b2464 解答用紙のヘッダ部分の番号と名前の未修正 解答用紙の上部のコメントアウトした部分にはデフォルトで適当な学生番号と名前が入っていますので,そこは必ず自分のものに直してから解答を始める習慣をつけてください.こちらも減点対象です. b2425 b2457 実行時の学生番号間違い 実行時に学生番号が s246099 のままの人がいました.授業のときに話しましたが,そこは当然自分の学生番号に変えておいてください. b2404 b2412 b2419 b2425 b2437 b2439 b2440 b2447 不要な情報の追加 実行時に画面に学生番号を出力するように解答用紙は作っていますが,自分の名前は出力する必要はありません.ソースコードの中で日本語を使うと見えない空白文字が混在する危険もありますので,名前は要りません. b2414 b2417 b2418 b2430 b2432 b2433 b2438 b2444 b2448 b2451 b2453 b2455 b2457 b2459 c01 c02
前回の宿題の講評ですが,今回は特別に期間限定でこのリンク先のページで説明します.
print() を使用して画面に文字列を表示する練習をしました.また,f 文字列(format メソッド)についても学習しました.今回も使用しますので,演習問題を通して理解を深めてください.
乱数はこの授業ではほぼ毎回使用する非常に重要な機能です.教科書 p.98(旧版では p.96)では2種類の乱数を発生させる関数が紹介してありますので,違いを理解してどちらを使用するか間違えないようにしましょう.
乱数を発生させる関数を読み込むためにはモジュールの読み込みが必要です.今回は,教科書 p.98 にあるモジュールの random を読み込みます.読み込むメソッドは import です.
整数の乱数を発生させる際には,教科書 p.98 にある randint() を使用します.次のプログラムは3桁と1から20までの乱数を発生させるプログラムです.
関数の random() は0から1の間の小数を発生させる関数です.
乱数を使用する時にモジュールの random を読み込みます.そこで,注意が必要なのですが,もし自分が作ったプログラムを random.py として保存してしまうと,モジュールとしてその自分のプログラムを読み込むことになるので,当然エラーとなります.ということで,モジュールと同じ名前のファイル名は決してつけないでください.
import random
num1 = random.randint(100, 999)
num2 = random.randint(1, 20)
print(f'Random number with 3 digits: {num1}')
print(f'Random number between 1 and 20: {num2}')
Random number with 3 digits: 473
Random number between 1 and 20: 16
import random
num = random.random()
print(f'Random number between 0 and 1: {num}')
Random number between 0 and 1: 0.7772063796213998
実は Python には他にもたくさんの乱数を発生する関数があります.便利そうなものを2つほど紹介しておきます.
この関数は以下のように引数を用意します.
random.randrange(start, stop, setp) |
start 以上で stop 以下の整数の中から乱数をつくりますが,start から step 分とびとびの値から乱数を選びます.なので,start が偶数で step が 2 だと,偶数の乱数を発生することになります.
正規分布に従った乱数を発生させる関数です.詳細は説明しませんが,データ処理の例題データを作る際に活用できます.
今回の演習問題です.
宿題が公開されるのは明日火曜日10:00の予定で,締切りは来週の月曜日11月6日の10:00です.レポート提出システムを使用します.
Python は基本的に文字コードがUTF-8のソースしか読み込めませんので,文字コードにUTFを使っている回答用紙もリンクをクリックして表示させると,文字化けします.解答用紙を使用する時には,リンクを右クリックして,「名前を付けてリンク先を保存」を選んで,保存してから使用してください.