python中在指定概率分布的情況下,為什麼設定隨機數種子仍

2021-03-20 04:00:05 字數 5997 閱讀 8298

1樓:花臂華盛頓

4種方案

(1)random.choice從序列中獲取乙個隨機元素。其函式原型為:random.choice(sequence)。引數sequence表示乙個有序型別。

(2)在固定列表中隨機去多個數,random.sample的函式原型為:random.sample(sequence, k),從指定序列中隨機獲取指定長度的片斷。

(3)隨機取多個數,random.randint()的函式原型為:random.randint(a, b),用於生成乙個指定範圍內的整數。

(4)也可以用randint方法做到,從0~9中隨機產生4個互不相等的數。

2樓:日time寸

python內建的函式一次只能生成乙個隨機數,然而你可以方便地使用表理解(list ***prehension)一次性生成多個隨機數。示例的**如下:

import random

[random.randint(0,100) for _ in range(10)]

#[57, 93, 22, 55, 41, 64, 47, 32, 93, 61]

range函式輸入不同的值,可以設定需要生成隨機數的個數,上面的例子中生成了10個隨機數。

3樓:匿名使用者

import random

a = range(1,20)

i = random.sample(a,5)print(i)

#[5, 19, 6, 13, 2]

注意range是1-19不含20。sample裡邊的5指取5個數。

簡寫後:

import random

print(random.sample(range(1,3),2))#[2,1]

4樓:匿名使用者

a=[randint(範圍) for _ in range(次數)] 這樣就會return 一list的隨機數字

5樓:匿名使用者

隨機數重不重複,範圍多少?一次性取3個的單一函式在python標準庫里沒有,需要編點**才能達到目的

python中,我想得到1~255隨機整數,用rand.randint(1,255),但不想讓裡面170這個數出現,怎麼寫呢?

6樓:萬千少女的夢想

1、可以使用while函式,對隨機進行迴圈

2、直接在隨機數中去掉170這個值

擴充套件資料:

除了randint,random模組中比較常用的方法還有:

1、random.random()

生成乙個0到1之間的隨機浮點數,包括0但不包括1,也就是[0.0, 1.0)。

2、random.uniform(a, b)

生成a、b之間的隨機浮點數。不過與randint不同的是,a、b無需是整數,也不用考慮大小。

random.uniform(2.2, 6)

random.uniform(6,2.2)

這兩種引數都是可行的。

3、random.choice(seq)

從序列中隨機選取乙個元素。seq需要是乙個序列,比如list、元組、字串。

random.choice([1, 4, 7, 2, 5, 8]) #list

random.choice('hello') #字串

random.choice((1, 2, 3)) #元組

都是可行的用法。

7樓:jr幻影

先隨機得到1-254之間的乙個數,如果這個數等於170,再次隨機,這樣才能保證得到的數是完全隨機出來的,而不能給隨機出來的數加上1。

可以是下面這樣的。

import random

a=random.randint(1,254)while(a==170):

a=random.randint(1,254)print(a)

8樓:天涯刀客仗劍

**了樓主採納的這個答案覺得不妥,雖然下面的**也可以達到隨機的效果。

import random

a = random.randint(1, 254)if a >= 170:

a += 1

但卻不是真正的隨機,真正的隨機應該是先隨機得到1-254之間的乙個數,如果這個數等於170,再次隨機,這樣才能保證得到的數是完全隨機出來的,而不能給隨機出來的數加上1。

可以是下面這樣的。

import random

a=random.randint(1,254)while(a==170):

a=random.randint(1,254)print(a)

當然上面的隨機是把170這個數也算入到裡面去了,那麼怎麼去掉170這個數,再在1-169,169-254這兩組數字之間隨機呢?下面有一行**可以得到隨機整數

import random

random.choice([x for x in range(1,254) if x!=170 ])樓主可以用type(x)來檢視得到的數的型別,是個整數哦。

不知道是否滿足樓主的需求?

9樓:匿名使用者

相當於是取1~254的隨機數,然後如果得到的數大於等於170的話,就往後挪1,就達到你要的隨機效果了。

a = random.randint(1, 254)if a >= 170:

a += 1

10樓:

import random

def numgen(start, ended, times=100, exceptset=set()):

while times:

x = random.randint(start, ended)if x in exceptset:

continue

yield x

times -= 1

for n in numgen(1, 255, 10, set([170,]):

print n

11樓:匿名使用者

from random import *

a = range(1,256)

a.remove(170)

print sample(a, 1)[0]

12樓:自我西郊

看看,最後繪圖,均勻分布

13樓:o奔跑的駿馬

#  python 3 版本適用此**,這段**的思路是先生成乙個符合要求的所有數字的列表。

#  然後從這個列表裡除去不需要的170這個數字,再用隨機函式在這個不包含170的數字集合中

#  隨機出乙個數字。

import random                 # 匯入random這個庫

a=list(range(1,256))          # 生成包含1到255這些數字的列表,注意range的引數是包頭不包尾。

a.remove(170)                 # 從列表中去除170這個數字

print(random.sample(a,1)[0])  # 列印這個數字,sample方法兩個引數的意義是(列表,取幾個值)

14樓:覃代暉

最佳答案寫的對著呢,"1~254" 沒問題,因為下面用的是">=",170以上統一加1就成了171-255了,從而不存在170的概率是2倍的問題。

這是思路1,

思路2,隨機1~254,出現170時,用255取代。

思路3,隨機1~255,出現170時迴圈再執行一遍。

關於python中的隨機數生成步驟和隨機數質量

15樓:曹曉山

python生成隨機數和隨機數質量的方法,random.random()用於生成乙個指定範圍內的隨機符點數,兩個引數其中乙個是上限,乙個是下限。如果a > b,則生成隨機數:

print random.uniform(10, 20)

print random.uniform(20, 10)

#----

#18.7356606526

#12.5798298022

random.randint

用於生成乙個指定範圍內的整數。其中引數a是下限,引數b是上限,python生成隨機數

print random.randint(12, 20) #生成的隨機數n: 12 <= n <= 20

print random.randint(20, 20) #結果永遠是20

#print random.randint(20, 10) #該語句是錯誤的。

random.randrange方法從指定範圍內,按指定基數遞增的集合中 ,下面對python生成隨機數的應用程式的部分介紹:

1.隨機整數:

>>> import random

>>> random.randint(0,99)

212.隨機選取0到100間的偶數:

>>> import random

>>> random.randrange(0, 101, 2)

423.隨機浮點數:

>>> import random

>>> random.random()

0.85415370477785668

>>> random.uniform(1, 10)

5.4221167969800881

4.隨機字元:

>>> import random

>>> random.choice('abcdefg&#%^*f')

'd'5.多個字元中選取特定數量的字元:

>>> import random

random.sample('abcdefghij',3)

['a', 'd', 'b']

6.多個字元中選取特定數量的字元組成新字串:

>>> import random

>>> import string

>>> string.join(random.sample(['a','b','c','d','e','f','g','h','i','j'], 3)).r

eplace(" ","")

'fih'

16樓:匿名使用者

>>> random.random()        # random float x, 0.0 <= x < 1.0

0.37444887175646646

>>> random.uniform(1, 10)  # random float x, 1.0 <= x < 10.0

1.1800146073117523

>>> random.randint(1, 10)  # integer from 1 to 10, endpoints included

7>>> random.randrange(0, 101, 2)  # even integer from 0 to 100

26>>> random.choice('abcdefghij')  # choose a random element

'c'>>> items = [1, 2, 3, 4, 5, 6, 7]

>>> random.shuffle(items)

>>> items

[7, 3, 2, 5, 6, 4, 1]

>>> random.sample([1, 2, 3, 4, 5],  3)  # choose 3 elements

[4, 1, 5]

測試隨機數質量一般是用以下幾種測試:

birthday spacings

ranks of matrices

monkey tests

count the 1s

parking lot test

minimum distance test

random spheres test

the squeeze test

runs test

the craps test

用python怎麼做出概率分布圖啊,新手菜鳥,求高手指點

如果來沒有程式設計經驗,建議不要看太深源入的書籍,先從bai python 怎樣操作 excel 生成圖表,求高手指點。最好是源 已bai 解決 dupython中處理操zhi作excel中的dao圖表內 chart,容graph python正規表示式裡的 b和 b的區別 我看文件了.可是還是不明...

Python中如何遍歷指定目錄下的所有檔案?

上甲殼蟲技術論壇看下相關的教程吧。目錄名 目錄下所有檔名。怎樣用python遍歷乙個目錄下所有檔案?python,如何遍歷乙個目錄,輸出所有檔名 求通過python實現,在指定目錄下遍歷所有檔案,將以.txt為字尾的檔案移動到另一指定目錄中 如何使用perl遍歷乙個目錄下的所有檔案 前提,你wind...

python定義函式,在python中定義函式

params 就是 5,5 5,2 就是2個5的元組,乘號可以理解成相加。30就是30個 的字串 params作為引數,前面的 號就是把params元組分解成元素的意思,這樣就分開成為2個引數了。實際上傳遞給了x,y 於是就執行了power 5,5 在python中定義函式 涉及到狀態儲存,可以使用...