目次
1.random.randint(start,stop)
2、random.randrange(start,stop,step)
コア ソース コード:
例:
最悪の時間計算量: O(n*n)
ホームページ バックエンド開発 Python チュートリアル Python でのランダム モジュールの分析 (例付き)

Python でのランダム モジュールの分析 (例付き)

Nov 23, 2018 pm 04:57 PM
python

この記事の内容は Python のランダムモジュールの解析に関するものです (サンプル付き) 一定の参考価値がありますので、困っている友人は参考にしていただければ幸いです。

random は Python が疑似乱数を生成するモジュールで、ランダム シードのデフォルトはシステム クロックです。モジュール内のメソッドは以下で分析されます:

1.random.randint(start,stop)

これは整数乱数を生成する関数です. パラメーター start は最小値を表し、パラメータ stop は最大値を表し、両端の値を取得できます;

関数アルゴリズムの時間計算量は次のとおりです: O(1)

コア ソース コード:

return self.randrange(a,b+1) #调用randrange函数来处理

例:

import random

for i in range(20):
    print(random.randint(0,10),end=' ')

結果:

1 1 7 5 10 1 4 1 0 8 7 7 2 10 6 8 6 0 3 1

2、random.randrange(start,stop,step)

もオプションのランダムな整数関数です。パラメータ

  • Only パラメータが 1 つある場合、デフォルトのランダム範囲は 0 からこのパラメータまでで、最初に閉じて後で開きます。パラメータが 2 つあり、最小値と最大値を表し、最初に閉じて後で開きます

  • パラメータが 3 つある場合、最小値、最大値、ステップ サイズを表し、最初に閉じます後で開きます

  • 関数アルゴリズムの時間計算量: O(1)

  • コア ソース コード:
return istart+istep*self._randbelow(n) #调用randbelow函数处理

インスタンス:

import random

for i in range(10):
    print(random.randrange(10),end=' ') #产生0到10(不包括10)的随机数

print("")

for i in range(10):
    print(random.randrange(5,10),end=' ') #产生5到10(不包括10)的随机数

print("")

for i in range(10):
    print(random.randrange(5,100,5),end=' ') #产生5到100(不包括100)范围内的5倍整数的随机数

Result:

1 1 2 4 4 3 4 6 1 4
6 6 5 7 8 9 6 6 6 5
30 50 20 40 75 85 25 65 80 95

3.random.choice(seq)

ランダム選択関数、seq は空ではないセットで、セット内の要素を出力用にランダムに選択します。要素の制限はありません。

コア ソース コード:

i=self._randbelow(len(seq)) #由randbelow函数得到随机地下标
return seq[i]

関数アルゴリズムの時間責任: O(1)

例:

import random

list3=["mark","帅",18,[183,138]]
for j in range(10):
    print(random.choice(list3),end=' ')

コード:

mark 帅 [183, 138] 18 mark 18 mark 帅 帅 [183, 138]

4.random.random()

この関数は、パラメータなしで、0.0 から 1.0 までの任意の浮動小数点数を形成します。左側が閉じ、右側が開きます。

例:

import random

for j in range(5):
    print(random.random(),end=' ')

実行結果:

0.357486615834809 0.5928029747238529 0.37053940107869987 0.3802224543848519 0.9741990956161711

5.random.send(n=None)

乱数生成関数を初期化できます。 n はランダム シードを表します。n=None の場合、ランダム シードはシステム時間です。n がその他のデータ (int、str など) の場合、指定されたデータがランダム シードとして使用されます。乱数シーケンスは、次の時点で生成されます。今回は固定です。

例:

import random

random.seed("mark")
for j in range(20):#无论启动多少次程序,输出的序列不变
    print(random.randint(0,10),end=' ')

結果:

4 1 10 5 6 2 8 5 5 10 7 2 9 6 2 6 0 5 10 10

6.random.getstate() および random.setstate(state):

getstate() 関数は次のとおりです。 used 乱数ジェネレーターの状態を記録するには、setstate(state) 関数を使用してジェネレーターを最後に記録された状態に復元します。

例:

import random

tuple1=random.getstate()#记录生成器的状态
for i in range(20):
    print(random.randint(0,10),end=' ')
print()
random.setstate(tuple1)#传入参数回复之间的状态
for i in range(20):
    print(random.randint(0,10),end=' ')#两次输出的结果一致

結果:

5 7 9 9 10 10 2 3 7 1 1 6 1 7 1 1 7 4 2 2
5 7 9 9 10 10 2 3 7 1 1 6 1 7 1 1 7 4 2 2

7.random.shuffle(seq,random=None):

受信したコレクション シーケンス操作をシャッフルします。これは、文字列やリストなどの変更可能なシーケンスに対してのみ使用できます。タプルなどの不変のシーケンスに対してはエラーが報告されます。random は、random=random など、アウトオブオーダーの演算方法を選択するために使用されます。

コア ソース コード:

for i in reversed(range(1,len(x))):
    j=randbelow(i+1)
    x[i],x[j]=x[k],x[i]

関数アルゴリズムの時間計算量: O(n)

例:

import random

lists=['mark','帅哥',18,[183,138]]
print(lists)
random.shuffle(lists,random=None)
print(lists)

結果:

['mark', '帅哥', 18, [183, 138]]
['帅哥', 18, 'mark', [183, 138]]

8.random.sample(population,k):

population パラメータは、リスト、タプル、セット、文字列などのシーケンスであり、セットから k 個の要素がランダムに選択されて、新しいシーケンス。元のシーケンスは変更されません。

最悪の時間計算量: O(n*n)

例:

import random

lists=['mark','帅哥',18,[183,138]]
lists2=random.sample(lists,3)
print(lists)
print(lists2)

結果:

['mark', '帅哥', 18, [183, 138]]
['mark', [183, 138], '帅哥']

9、random.uniform(a, b)

パラメータ a と b の間の浮動小数点数を生成する関数。a>b の場合、b と a の間の浮動小数点数を生成します。

コア ソース コード:

return a+(b-a)*self.random()

時間計算量: 0(1)

例:

import random

for i in range(5):
    print(random.uniform(10,1))

結果:

2.8826090956524606
1.5211191352548408
3.2397454278562794
4.147879756524251
6.532545391009419

以上がPython でのランダム モジュールの分析 (例付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

python shotil rmtreeの例 python shotil rmtreeの例 Aug 01, 2025 am 05:47 AM

shutil.rmtree()は、ディレクトリツリー全体を再帰的に削除するPythonの関数です。指定されたフォルダーとすべてのコンテンツを削除できます。 1.基本的な使用法:shutil.rmtree(PATH)を使用してディレクトリを削除すると、FilenotFounderror、PermissionError、その他の例外を処理する必要があります。 2。実用的なアプリケーション:一時的なデータやキャッシュディレクトリなど、サブディレクトリとファイルを1回クリックして含むフォルダーをクリアできます。 3。注:削除操作は復元されません。 FilenotFounderrorは、パスが存在しない場合に投げられます。許可またはファイル職業のために失敗する可能性があります。 4.オプションのパラメーター:INGRORE_ERRORS = trueでエラーを無視できます

Pythonで仮想環境を作成する方法 Pythonで仮想環境を作成する方法 Aug 05, 2025 pm 01:05 PM

Python仮想環境を作成するには、VENVモジュールを使用できます。手順は次のとおりです。1。プロジェクトディレクトリを入力して、python-mvenvenv環境を実行して環境を作成します。 2。SourceENV/bin/Activate to Mac/LinuxおよびEnv \ Scripts \ Windowsにアクティブ化します。 3. PIPINSTALLインストールパッケージ、PIPFREEZE> RECUMESSION.TXTを使用して、依存関係をエクスポートします。 4.仮想環境をGITに提出しないように注意し、設置中に正しい環境にあることを確認してください。仮想環境は、特にマルチプロジェクト開発に適した競合を防ぐためにプロジェクト依存関係を分離でき、PycharmやVSCodeなどの編集者も

PythonでSQLクエリを実行する方法は? PythonでSQLクエリを実行する方法は? Aug 02, 2025 am 01:56 AM

対応するデータベースドライバーをインストールします。 2。CONNECT()を使用してデータベースに接続します。 3.カーソルオブジェクトを作成します。 4。Execute()またはexecuteMany()を使用してSQLを実行し、パラメーター化されたクエリを使用して噴射を防ぎます。 5。Fetchall()などを使用して結果を得る。 6。COMMING()は、変更後に必要です。 7.最後に、接続を閉じるか、コンテキストマネージャーを使用して自動的に処理します。完全なプロセスにより、SQL操作が安全で効率的であることが保証されます。

Pythonの複数のプロセス間でデータを共有する方法は? Pythonの複数のプロセス間でデータを共有する方法は? Aug 02, 2025 pm 01:15 PM

MultiProcessing.Queueを使用して、複数のプロセスと消費者のシナリオに適した複数のプロセス間でデータを安全に渡す。 2。MultiProcessing.Pipeを使用して、2つのプロセス間の双方向の高速通信を実現しますが、2点接続のみ。 3.値と配列を使用して、シンプルなデータ型を共有メモリに保存し、競争条件を回避するためにロックで使用する必要があります。 4.マネージャーを使用して、リストや辞書などの複雑なデータ構造を共有します。これらは非常に柔軟ですが、パフォーマンスが低く、複雑な共有状態を持つシナリオに適しています。データサイズ、パフォーマンス要件、複雑さに基づいて適切な方法を選択する必要があります。キューとマネージャーは、初心者に最適です。

Python boto3 S3アップロード例 Python boto3 S3アップロード例 Aug 02, 2025 pm 01:08 PM

BOTO3を使用してファイルをS3にアップロードしてBOTO3を最初にインストールし、AWS資格情報を構成します。 2。boto3.client( 's3')を介してクライアントを作成し、upload_file()メソッドを呼び出してローカルファイルをアップロードします。 3. S3_Keyをターゲットパスとして指定し、指定されていない場合はローカルファイル名を使用できます。 4. filenotfounderror、nocredentialserror、clienterrorなどの例外を処理する必要があります。 5。ACL、ContentType、StorageClass、Metadataは、exrceargsパラメーターを介して設定できます。 6。メモリデータについては、bytesioを使用して単語を作成できます

Pythonのリストを使用してスタックデータ構造を実装する方法は? Pythonのリストを使用してスタックデータ構造を実装する方法は? Aug 03, 2025 am 06:45 AM

pythonlistscani実装Append()penouspop()popoperations.1.useappend()2つのBelief stotetopthestack.2.usep op()toremoveandreturnthetop要素、保証済みのtocheckeckeckestackisnotemptoavoidindexerror.3.pekattehatopelementwithstack [-1]

Pythonでの弱い参照とは何ですか?いつ使用する必要がありますか? Pythonでの弱い参照とは何ですか?いつ使用する必要がありますか? Aug 01, 2025 am 06:19 AM

weadReferencexisttoalowrecerencing objectswithoutpreventing theirgarbagecollection、helpingmemoryLeaksandcularReferences.1.useweakkeydiction aryorweakvaluedictionaryforforcacheSompapingStoleTunusedOunusedObjects.becolted.2.2

Pythonスケジュールライブラリの例 Pythonスケジュールライブラリの例 Aug 04, 2025 am 10:33 AM

Pythonscheduleライブラリを使用して、タイミングタスクを簡単に実装します。まず、PipinstallScheduleを介してライブラリをインストールし、スケジュールモジュールと時間モジュールをインポートし、定期的に実行する必要がある関数を定義し、スケジュールを使用して時間間隔を設定してタスク関数を結合します。最後に、スケジュールを呼び出してください。たとえば、10秒ごとにタスクを実行すると、スケジュールとして記述できます。すべて(10).seconds.do(job)。数分、数時間、日、週などをサポートし、特定のタスクを指定することもできます。

See all articles