python是完全面向?qū)ο蟮?,因此所有的?shù)據(jù)都是對(duì)象
成都服務(wù)器托管,創(chuàng)新互聯(lián)建站提供包括服務(wù)器租用、珉田數(shù)據(jù)中心、帶寬租用、云主機(jī)、機(jī)柜租用、主機(jī)租用托管、CDN網(wǎng)站加速、主機(jī)域名等業(yè)務(wù)的一體化完整服務(wù)。電話咨詢:18982081108
random.random()生成0和1之間的隨機(jī)浮點(diǎn)數(shù)float,它其實(shí)是一個(gè)隱藏的random.random類的實(shí)例的random方法。
random.random()
生成random模塊里得random類的一個(gè)實(shí)例,這個(gè)實(shí)例不會(huì)和其他random實(shí)例共享狀態(tài),一般是在多線程的情況下使用。
import?random
import?numpy?as?np
List?=?np.array([(0,0),(1,1),(1.6,1.8),(3,3)])
d?=?0.5
def?get_random(low,high):
return((high-low)*random.random()+low)
n?=?0
while?n100000:
x?=?get_random(0,3)
y?=?get_random(0,3)
rand_tuple?=?np.array([x,y])
tmp_dist?=?np.sqrt(np.sum(np.square(List-rand_tuple),axis?=?1))
tmp_dist_bool?=?tmp_dist?=?d
if?np.sum(tmp_dist_bool)?==?len(List):
print(x,y)
break
n?+=?1
if?n==100000:
print("After",n,"tries,can't?get?a?random?point!Check?whether?the?problem?has?a?solution!")
根據(jù)x**2+z**2==25
所以你的x,z?不可能是帶小數(shù)的
只能是整數(shù)或者整數(shù)的浮點(diǎn)數(shù)
例如?3.0**2+4.0**2=25?或者3**2+4**2=25
并且?0.0=x=5.0?,0.0=z=5.0
#?!?usr/bin/python
#?-*-?coding:utf-8?-*-
#?python?2.7
import?random
a,b,c,d?=?0,5,0,5
x?=?random.randint(a,?b)
z?=?random.randint(c,?d)
while?x**2+z**2??25:
x?=?random.randint(a,?b)
z?=?random.randint(c,?d)
print?x,z
y?=?random.randint(11,?20)#?自定義y的范圍
print?(float(x),float(y),float(z))
難度:★★☆☆☆
類型:幾何
方法:拒絕采樣
力扣鏈接請(qǐng)移步 本題傳送門(mén)
更多力扣中等題的解決方案請(qǐng)移步 力扣中等題目錄
給定圓的半徑和圓心的 x、y 坐標(biāo),寫(xiě)一個(gè)在圓中產(chǎn)生均勻隨機(jī)點(diǎn)的函數(shù) randPoint 。
說(shuō)明:
輸入值和輸出值都將是浮點(diǎn)數(shù)。
圓的半徑和圓心的 x、y 坐標(biāo)將作為參數(shù)傳遞給類的構(gòu)造函數(shù)。
圓周上的點(diǎn)也認(rèn)為是在圓中。
randPoint 返回一個(gè)包含隨機(jī)點(diǎn)的x坐標(biāo)和y坐標(biāo)的大小為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]]
輸入語(yǔ)法說(shuō)明:
輸入是兩個(gè)列表:調(diào)用成員函數(shù)名和調(diào)用的參數(shù)。Solution 的構(gòu)造函數(shù)有三個(gè)參數(shù),圓的半徑、圓心的 x 坐標(biāo)、圓心的 y 坐標(biāo)。randPoint 沒(méi)有參數(shù)。輸入?yún)?shù)是一個(gè)列表,即使參數(shù)為空,也會(huì)輸入一個(gè) [] 空列表。
我們?cè)谝詧A心為中心,以二倍半徑為邊長(zhǎng)的正方形內(nèi)部進(jìn)行隨機(jī)選點(diǎn),當(dāng)點(diǎn)落在圓內(nèi)或者圓上時(shí),滿足條件,返回該點(diǎn)。
我們可以把上面的直角坐標(biāo)變換為極坐標(biāo),隨機(jī)的選取角度和半徑,生成的點(diǎn)一定在圓上或者圓內(nèi)。這里需要注意,由于在平面維度是均勻采樣的,生成隨機(jī)半徑時(shí)需要對(duì)結(jié)果開(kāi)方。
如有疑問(wèn)或建議,歡迎評(píng)論區(qū)留言~
有關(guān)更多力扣中等題的python解決方案,請(qǐng)移步 力扣中等題解析
python 3
import itertools
list(itertools.product(range(1, 6), range(1, 4)))
如果需要隨機(jī)的話,直接隨機(jī)產(chǎn)生以上list里的index
import random
n = 5
random_list = list(itertools.product(range(1, 6), range(1, 4)))
random.sample(random_list, n)
本文名稱:python隨機(jī)坐標(biāo)函數(shù) python定義坐標(biāo)
URL標(biāo)題:http://sd-ha.com/article38/hhejsp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、網(wǎng)站制作、動(dòng)態(tài)網(wǎng)站、App開(kāi)發(fā)、網(wǎng)站維護(hù)、App設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)