Python標準ライブラリ(mathパッケージ、randomパッケージ)の数学と乱数について詳しく解説

零下一度
リリース: 2017-05-20 14:51:08
オリジナル
2402 人が閲覧しました

Python の最も基本的な数学演算関数を Python の操作で見てきました。さらに、数学パッケージには、より多くの関数が追加されました。もちろん、より高度な数学関数が必要な場合は、標準ライブラリ外の numpy プロジェクトと scipy プロジェクトを選択することを検討できます。これらのプロジェクトは、配列 と行列演算をサポートするだけでなく、豊富な数学関数と行列演算もサポートします。物理方程式を使用できます。

さらに、randomパッケージを使用して乱数を生成することができます。乱数は数学的な目的で使用できるだけでなく、アルゴリズムの効率を向上させ、プログラムのセキュリティを向上させるためにアルゴリズムに組み込まれることもよくあります。

math パッケージ

math パッケージは主に数学関連の操作を処理します。 math パッケージは 2 つの定数を定義します:

math.e   # 自然常数e
math.pi  # 圆周率pi
ログイン後にコピー

さらに、 math パッケージにはさまざまな演算関数もあります (以下の関数の機能については、数学マニュアルを参照してください) :

math.ceil(x)       # 对x向上取整,比如x=1.2,返回2
math.floor(x)      # 对x向下取整,比如x=1.2,返回1
math.pow(x,y)      # 指数运算,得到x的y次方
math.log(x)        # 对数,默认基底为e。可以使用base参数,来改变对数的基地。比如math.log(100,base=10)
math.sqrt(x)       # 平方根
 
三角函数: math.sin(x), math.cos(x), math.tan(x), math.asin(x), math.acos(x), math.atan(x)
ログイン後にコピー

これらの関数はすべて、パラメーターとしてラジアン単位の x を受け取ります。

角度和弧度互换: math.degrees(x), math.radians(x)
双曲函数: math.sinh(x), math.cosh(x), math.tanh(x), math.asinh(x), math.acosh(x), math.atanh(x)
特殊函数: math.erf(x), math.gamma(x)
ログイン後にコピー

ランダムパッケージ

疑似乱数の原理をすでに理解している場合は、次を使用できます:

random.seed(x)
ログイン後にコピー

乱数ジェネレーターのシードを変更します。 原理を理解していない場合は、特にシードを設定する必要はありません。Python がシードを選択します。

1) ランダムに選択され並べ替えられます

random.choice(seq)   # 从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。
random.sample(seq,k) # 从序列中随机挑选k个元素
random.shuffle(seq)  # 将序列的所有元素随机排序
ログイン後にコピー

2) ランダムに生成された実数

以下で生成される実数は一様分布に準拠します。これは、特定の範囲内のすべての数値が同じ確率で発生することを意味します:

random.random()          # 随机生成下一个实数,它在[0,1)范围内。
random.uniform(a,b)      # 随机生成下一个实数,它在[a,b]范围内。
ログイン後にコピー

以下で生成される実数は、他の分布に準拠します (これらの分布を理解するには、いくつかの統計書籍を参照してください):

random.gauss(mu,sigma)    # 随机生成符合高斯分布的随机数,mu,sigma为高斯分布的两个参数。 
random.expovariate(lambd) # 随机生成符合指数分布的随机数,lambd为指数分布的参数。
ログイン後にコピー

さらに、対数分布、正規分布、パレート分布、およびワイブル分布を参照してください。以下のリンク:

docs.python.org/library/random.html
ログイン後にコピー

假设我们有一群人参加舞蹈比赛,为了公平起见,我们要随机排列他们的出场顺序。我们下面利用random包实现:

import random
all_people = ['Tom', 'Vivian', 'Paul', 'Liya', 'Manu', 'Daniel', 'Shawn']
random.shuffle(all_people)for i,name in enumerate(all_people):    print(i,':'+name)
ログイン後にコピー

【相关推荐】

1. 分享Python中random模块生成随机数的实例教程

2. Python random() 函数的实例教程

3. 分享一篇Python中random(随机生成数)的实例教程

4. 分享Python random生成某区间内不重复的N个随机数的方法实例

5. Python random模块(获取随机数)常用方法和使用例子

6. Python random模块常用方法

7. Python 模块学习:random 随机数生成

以上がPython標準ライブラリ(mathパッケージ、randomパッケージ)の数学と乱数について詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート