Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで乱数を生成する方法を徹底解説!randomモジュールの基本と使い方

Pythonの標準ライブラリには、乱数を生成するための機能がまとめられた random モジュールが用意されています。このモジュールを利用することで、浮動小数点数や整数の乱数、シーケンスからのランダムな要素の取得などを簡単に実現できます。ここでは、よく使われる主要な関数をサンプルコードとともに紹介します。

random():0以上1未満の浮動小数点数を生成

もっとも基本的な関数が random() です。この関数は、0以上1未満の範囲のランダムな浮動小数点数を返します。

>>> import random
>>> random.random()
0.5204702770265925

実行するたびに異なる値が返されるため、シミュレーションやテストデータの生成などに幅広く活用できます。

randrange():指定した範囲から整数の乱数を生成

同じモジュールには randrange() 関数も用意されています。この関数は、指定した連続する範囲の中からランダムな整数を1つ返します。引数には開始値と終了値を指定し、終了値は範囲に含まれない点に注意してください。

>>> random.randrange(0, 10)
4

上の例では、0から9までの整数のいずれかがランダムに返されます。サイコロのような処理や、インデックスをランダムに選びたい場合に便利です。

choice():リストやタプルから要素をランダムに選択

choice() 関数を使うと、リストやタプルなどのシーケンスから要素を1つランダムに取り出すことができます。

>>> random.choice([10, 20, 30, 40, 50])
40
>>> random.choice((10, 20, 30, 40, 50))
20

リストでもタプルでも同様に動作するため、くじ引きのような処理や、候補の中からランダムに1つ選ぶ場面で活躍します。

まとめ

Pythonで乱数を扱う際は、まず import random でモジュールを読み込み、用途に応じて関数を使い分けるのが基本です。

  • random():0以上1未満の浮動小数点数の乱数を取得
  • randrange():指定範囲内の整数の乱数を取得
  • choice():シーケンスから要素をランダムに1つ選択

これらの関数を組み合わせることで、ゲーム、シミュレーション、データ分析など、さまざまな場面で乱数を活用できます。まずは実際にコードを実行して、挙動を確かめてみてください。

  1. Pythonで素数を生成する方法をわかりやすく解説

    素数とは何か? 素数とは、1とその数自身以外の正の整数では割り切れない数のことです。たとえば、2、3、5、7、11などが素数に該当します。なお、1は約数を1つしか持たないため、素数には含まれない点に注意しましょう。 Pythonで素数を判定する基本的な考え方 Pythonでは、剰余演算子「%」を使うことで、ある数が別の数で割り切れるかどうかを簡単に調べられます。x % y の結果が0であれば、xはyで割り切れることを意味します。 1から100までの範囲で素数を求める場合、各数値(仮にxとします)について、2からx-1までのすべての数で順番に割り切れるかを確認する必要があります。この処理は、二

  2. 加重乱数(重み付き乱数)を生成する方法【Ruby実装例つき】

    通常、乱数は「一様分布(uniform distribution)」に従います。これは、どの数値が選ばれる確率もすべて等しいという意味です。 しかし、特定の数値が他の数値よりも高い確率で選ばれるようにしたい場合は、別の戦略が必要になります。それが加重乱数ジェネレーター(重み付き乱数生成器)です。 実際の応用例としては、次のようなものが挙げられます。 ゲーム内のルートテーブル:敵が異なるアイテムを、それぞれ異なるドロップ率で落とす仕組み 抽選会:抽選券を多く持っている人ほど、当選する確率が高くなる仕組み シンプルな方法:配列を使う戦略 抽選会の例で考えてみると、すぐに思いつく解決策があります