官术网_书友最值得收藏!

6.4 孫悟空的圈——隨機小數

在我們的生活中,有些情況是無法用整數來描述的,這就是小數存在的意義。例如,幾個人一起吃一個西瓜,每個人吃多少西瓜?每個人的身高是多少米?爸爸的體重是你的體重的多少倍?上面這些問題的答案只能用小數(或分數)來表示,編程世界有時候也需要一些隨機小數。如果你想獲得0與1之間的任意小數,你會遇到隨機數語句中語法最簡單的一個,如圖6.3所示。

圖6.3 隨機小數示意圖

千萬別小看了這個絕對值小于1的小數,因為它可以用于表示比例、程度等概念,只要增加一個乘數就會讓它變得威力無窮。

例如,《西游記》里孫悟空給他的師父畫了一個圈,他的師父只在圈里活動才能避免妖怪的傷害。假如這個圈的半徑為10米,如何讓師父隨便活動也不會出圈呢?這時候隨機小數就派上用場了。我們可以用比例的思維來理解,最遠的安全距離就是離圓心為半徑100%的距離(也就是1),其他任何大于0且小于1的小數比例都會比1小,這正好符合我們用隨機數語句random.random()生成隨機小數的規范,所以代碼就可以寫成這樣:

import random
scaleNum = random.random()
dis = 10 * scaleNum
print(dis)

又例如,我們制造了一個“飛碟”,其最快速度為5000千米/小時,我們讓其自由飛行并可以隨意變更速度,那么它的速度可能是多少?與上面的案例一樣,我們也需要用比例的思維來解決這個問題,最后的代碼可以是這樣的:

import random
scaleNum = random.random()
speed = 5000 * scaleNum
print(‘飛碟的速度為’, speed, 'km/h')
主站蜘蛛池模板: 施甸县| 崇仁县| 通许县| 双桥区| 繁昌县| 沛县| 天祝| 宜昌市| 肥乡县| 嘉定区| 德格县| 台北市| 石狮市| 嘉义县| 阿克陶县| 若尔盖县| 蒙城县| 景洪市| 沧源| 浦江县| 樟树市| 北碚区| 武冈市| 新津县| 永嘉县| 上杭县| 曲阜市| 库车县| 涞源县| 鹿泉市| 蓝田县| 罗江县| 万安县| 北安市| 巴楚县| 兴山县| 乌审旗| 乌恰县| 峡江县| 通化市| 满洲里市|