難度:★★☆☆☆
目前創(chuàng)新互聯(lián)公司已為成百上千的企業(yè)提供了網(wǎng)站建設(shè)、域名、雅安服務(wù)器托管、網(wǎng)站改版維護、企業(yè)網(wǎng)站設(shè)計、富川網(wǎng)站維護等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
類型:幾何
方法:拒絕采樣
力扣鏈接請移步 本題傳送門
更多力扣中等題的解決方案請移步 力扣中等題目錄
給定圓的半徑和圓心的 x、y 坐標,寫一個在圓中產(chǎn)生均勻隨機點的函數(shù) randPoint 。
說明:
輸入值和輸出值都將是浮點數(shù)。
圓的半徑和圓心的 x、y 坐標將作為參數(shù)傳遞給類的構(gòu)造函數(shù)。
圓周上的點也認為是在圓中。
randPoint 返回一個包含隨機點的x坐標和y坐標的大小為2的數(shù)組。
示例 1:
輸入:
["Solution","randPoint","randPoint","randPoint"]
[[1,0,0],[],[],[]]
輸出: [null,[-0.72939,-0.65505],[-0.78502,-0.28626],[-0.83119,-0.19803]]
示例 2:
輸入:
["Solution","randPoint","randPoint","randPoint"]
[[10,5,-7.5],[],[],[]]
輸出: [null,[11.52438,-8.33273],[2.46992,-16.21705],[11.13430,-12.42337]]
輸入語法說明:
輸入是兩個列表:調(diào)用成員函數(shù)名和調(diào)用的參數(shù)。Solution 的構(gòu)造函數(shù)有三個參數(shù),圓的半徑、圓心的 x 坐標、圓心的 y 坐標。randPoint 沒有參數(shù)。輸入?yún)?shù)是一個列表,即使參數(shù)為空,也會輸入一個 [] 空列表。
我們在以圓心為中心,以二倍半徑為邊長的正方形內(nèi)部進行隨機選點,當點落在圓內(nèi)或者圓上時,滿足條件,返回該點。
我們可以把上面的直角坐標變換為極坐標,隨機的選取角度和半徑,生成的點一定在圓上或者圓內(nèi)。這里需要注意,由于在平面維度是均勻采樣的,生成隨機半徑時需要對結(jié)果開方。
如有疑問或建議,歡迎評論區(qū)留言~
有關(guān)更多力扣中等題的python解決方案,請移步 力扣中等題解析
思路:1、定義一個字典,把名字和數(shù)字對應(yīng)起來;2、引用隨機模塊;3、輸入要點名的個數(shù),通過循環(huán)輸出名字。
具體代碼如下:
#?-*-?coding:utf-8?-*-
from?random?import?randint
DictName?=?{1:?'Aaron',
2:?'Abel',
3:?'Abraham',
4:?'Adam',
5:?'Adrian',
6:?'Alva',
7:?'Alex',
8:?'Alexander',
9:?'Alan',
10:?'Albert',
11:?'Alfred',
12:?'Andrew',
13:?'Andy',
14:?'Angus',
15:?'Anthony',
16:?'Arthur',
17:?'Austin',
18:?'Ben',
19:?'Benson',
20:?'Bill',
21:?'Bob',
22:?'Brandon',
23:?'Brant',
24:?'Brent',
25:?'Brian',
26:?'Bruce',
27:?'Carl',
28:?'Cary',
29:?'Caspar',
30:?'Charles',
31:?'Cheney',
32:?'Chris',
33:?'Christian',
34:?'Christopher',
35:?'Colin',
36:?'Cosmo',
37:?'Daniel',
38:?'Dennis',
39:?'Derek',
40:?'Donald',
41:?'Douglas',
42:?'David',
43:?'Denny',
44:?'Edgar',
45:?'Edward',
46:?'Edwin',
47:?'Elliott',
48:?'Elvis',
49:?'Eric',
50:?'Evan',
51:?'Francis',
52:?'Frank',
53:?'Franklin',
54:?'Fred',
55:?'Gabriel',
56:?'Gaby',
57:?'Garfield',
58:?'Gary'}
Num?=?raw_input('請輸入需要點名個數(shù):')
flag?=?True
while?flag:
if?Num.isdigit():
Ind?=?int(Num)
flag?=?False
else:
print?'輸入錯誤,請確認'
else:
for?i?in?range(Ind):
print?DictName[randint(1,58)]
運行結(jié)果:
請輸入需要點名個數(shù):4
Brant
Cheney
David
Alan
在Python中,random模塊用于生成隨機數(shù)。下面介紹下random模塊中常用的幾個函數(shù)
01
打開我們python的ide
02
在打開的shell中,首先需要導(dǎo)入random庫,才可以使用random中的方法,首先介紹下應(yīng)用最多的函數(shù),random.random(),可以生成一個0到1的隨機符點數(shù)
03
random.uniform(a,b)函數(shù),生成指定范圍內(nèi)的隨機符點數(shù),如下圖
04
random.randint(a,b)函數(shù),生成一個指定范圍內(nèi)的整數(shù),如下圖
05
random.choice(sqe)函數(shù),從sqe序列中得到一個隨機元素,如下圖,序列元素可以包含很多種類,集合,列表,甚至元組都可以作為參數(shù)進行傳遞
python中的randint用來生成隨機數(shù),在使用randint之前,需要調(diào)用random庫。其表達是為random.randint(x,y),參數(shù)x和y代表生成隨機數(shù)的區(qū)間范圍。
random() 函數(shù)命名來源于英文單詞random(隨機)。randint是random + integer拼接簡寫而成,代表隨機一個整數(shù)。
Python標準庫中的random函數(shù),可以生成隨機浮點數(shù)、整數(shù)、字符串,甚至幫助你隨機選擇列表序列中的一個元素,打亂一組數(shù)據(jù)等。
函數(shù)randint的使用
1、OUT = RANDINT
產(chǎn)生一個“ 0 ”或“ 1 ”等概率。
2、OUT = RANDINT(M)
生成的M 矩陣的隨機二進制數(shù)字,“ 0 ”和“ 1 ”出現(xiàn)的概率均等。
3、OUT = RANDINT(M,N)
生成的(M,N) 矩陣的隨機二進制數(shù)字,“ 0 ”和“ 1 ”出現(xiàn)的概率均等。
4、OUT = RANDINT(M,N,RANGE)
生成的(M,N) 矩陣的隨機二進制數(shù)字,RANGE范圍可以是標量或向量。
標量:為正的話,取值為[0,RANGE-1] ,為負的話,取值為 [RANGE+1, 0]。
向量:取值為[RANGE(1), RANGE(2)]。
5、OUT = RANDINT(M,N,RANGE,STATE)
resets the state of RAND to STATE。
python中定義函數(shù)名稱不是隨機的。
python中定義函數(shù)名稱:函數(shù)名由數(shù)字下劃線字母組成,數(shù)字不可以當做開頭。函數(shù)名不可以是關(guān)鍵詞。函數(shù)在命名時要遵循見名知其意原則,因此函數(shù)名稱不是隨機的。
函數(shù)是指一段可以直接被另一段程序或代碼引用的程序或代碼。