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

Pythonのrandom.seed()とは?乱数生成器の初期化とシード値の役割を解説

random.seed()メソッドとは

Pythonのrandomモジュールに含まれるseed()メソッドは、乱数生成器を初期化するための機能です。あらかじめシード値(種となる数値)を指定しておくことで、プログラムを実行するたびに同じ乱数列を再現できます。そのため、テストやデバッグ、結果の再現性が求められるシミュレーションなどで広く活用されています。

基本構文

random.seed(a, version)

引数「a」の挙動

第一引数であるaには、シード値として任意の値を渡します。指定内容によって以下のように動作が変わります。

  • aを省略した場合、またはNoneを指定した場合:現在のシステム時刻がシードとして使用されます。なお、OSが乱数のソース(エントロピー源)を提供している環境では、システム時刻の代わりにその乱数源が優先的に利用されます。
  • aがint型の場合:その整数値がそのままシードとして直接使用されます。

引数「version」の違い

第二引数のversionは、文字列やバイト列をシードに変換する際のアルゴリズムを切り替えるための引数です。

  • version=2(デフォルト):str、bytes、bytearrayオブジェクトはint型に変換され、そのすべてのビットがシードとして使用されます。
  • version=1:旧バージョンのPythonで生成された乱数列を再現するために用意された互換用の設定です。この場合、strおよびbytesに対する変換アルゴリズムは、より狭い範囲のシード値を生成します。

使用例:同じシードで同じ乱数を再現する

import random

random.seed(42)
print(random.random())  # 実行するたびに同じ値が出力される

random.seed(42)
print(random.random())  # 上記と同一の値になる

このようにseed()で固定したシード値を再度設定すると、以降に生成される乱数列は必ず同じ順序で再現されます。逆に、シードを指定しなければシステム時刻などに基づいて毎回異なる乱数が生成されます。

  1. WindowsでPythonを使う方法|インストールから実行・モジュール導入まで完全解説

    初心者にも学びやすいプログラミング言語の代表格として、Pythonは世界中の何百万人ものコーダーに選ばれています。学習のハードルが低く、Windows・macOS・Linuxなど主要なOSすべてでサポートされており、Webサイト開発からデスクトップゲーム制作まで、幅広いプロジェクトに活用できるのが魅力です。 macOSやLinuxではPythonが最初からインストールされていることが多い一方、Windowsではいくつか追加の手順を踏む必要があります。この記事では、WindowsでPythonをインストールし、実際に使い始めるまでの流れをわかりやすく解説します。 WindowsへのPyt

  2. PythonのTkinterでスレッドを使う方法|threadingモジュールによる非同期処理の基本

    Tkinterでは、スレッド(Threading)を活用することで、複数の関数を同時に実行できます。これにより、アプリケーション内の処理を非同期で動かすことが可能になります。 Pythonでスレッドを使用するには、まずthreadingモジュールをインポートし、そのThreadクラスを継承した新しいクラスを定義します。そして、クラス内でrunメソッドをオーバーライドし、実行したい処理をその中に記述します。 つまり、スレッドを使えば複数の作業を並行して進めることができます。Tkinterアプリケーションでスレッドを実現する際は、Thread()関数を利用します。 ここでは、「一定時間スリープした