15-1 Math in JS 數學物件, random 亂數與 floor 無條件捨去
Lesson: 15-1 Math in JS 數學物件, random 亂數與 floor 無條件捨去
15-1 Math in JS 數學物件, random 亂數與 floor 無條件捨去
講義
1. JavaScript 的 Math 物件
Math 是 JavaScript 的內置物件,它不是一個函式,而是一個存放數學工具的「工具箱」。
- 靜態屬性:如
Math.PI(約 3.14159),可直接調用。 - 數學工具:包含三角函數 (sin, cos)、對數、指數等複雜運算,皆可透過
Math直接計算。
2. 產生亂數:Math.random()
- 特性:回傳一個 0 到 1 之間 的浮點數(包含 0,但不包含 1)。
- 注意:這是「偽亂數」,是透過演算法與電腦時鐘模擬出來的。
3. 數值捨去:Math.floor()
- 特性:無條件捨去(往下取整數)。
- 範例:
Math.floor(4.7)會得到4。 - 對比:
Math.ceil()是無條件進位,Math.round()是四捨五入。
4. 實戰公式:產生指定範圍的隨機整數
如果要產生一個從 1 到 100 的隨機整數,步驟如下:
- 放大範圍:
Math.random() * 100(得到 0 ~ 99.99… )。 - 取整數:
Math.floor(Math.random() * 100)(得到 0 ~ 99)。 - 平移起點:
Math.floor(Math.random() * 100) + 1(得到 1 ~ 100)。
- 通用公式:
Math.floor(Math.random() * 總個數) + 起始值
5. 小結
透過 random 與 floor 的組合,我們可以輕易做出如「隨機抽獎」、「隨機生成關卡」或「隨機背景顏色」等動態效果。
影片逐字稿 (AI 生成)
第15章來點數學吧好 首先我們在這個數學的章節裡面我們學到的是亂數 三角函數還有環狀排列物件那環狀排列物件呢 其實環狀這個東西其實不是就是我覺得有點太環狀柱列其實有點太難所以我們等一下會再講一些東西沒關係好 首先我們現在講15之一數學的類別然後我們怎麼樣的產生亂數然後再來我們要怎麼樣搭配無條件捨去吧就是flor就是math.floor去讓得到一個亂數了以後呢我還可以得到一個整數的隨機的值好 首先math是JavaScript的內置物件那它其實就有很多的數學工具你可以用它不是函式物件它是內置物件它是一個內置物件好 然後也適用於Number類型好 它的屬性和方法都是靜態的首先呢 你可以拿到數學常數math記得喔它這個是第一個是dash然後它的1是dash它1然後還有pi你就可以拿到這些數那當然這個pi也不是說是非常非常準確的它一定會有因為它畢竟是小數嘛它一定會有差值OK好 在這邊呢我們可以拿到幾種好用的數學工具包含三角函數對數 指數還有其他的函數那我們高中算了那麼久這邊用程式直接幫你跑出來你就不用自己算你只要會call它把公式丟進去它就給你結果好的 我們看一下亂數好 那我們剛剛前面有提就是在中午休息的時候在做例子的時候有跟大家提到電腦無法實際產生真正的亂數就是它會用一些方法去用clock去算出來逼近這個亂數好的 那它的值這邊呢是0到1之間不包含1就是0到0.99多所以比如說我們就直接來看一下看一下我們的亂數這邊來google然後我們可以到inspect element然後我們去跑我們的console這時候我們用math就可以直接叫它叫出來點然後裡面有很多的工具那今天我們要用的是什麼呢我們用的是randomOK它這裡有個小f代表random是一個function我們就直接叫它就變成0.62再叫它0.2再叫它0.09再叫它0.044那它其實非常的我們也看不出什麼規律所以好它就是一個random好的那floor是什麼呢floor就是無條件捨去嘛就是說我有4.7它會把小數點後面也砍掉砍掉好那我們有這兩個工具以後我們也會乘法所以我們可以想說0到1那我要0到100之間的那個亂數是不是我就直接把它乘以100然後它就不會包含100它就會到0到99之間所以你如果要得到1到100有包含100的亂數的話你是不是要把它全部加1好那我們現在來看一下就是怎麼來做用floor然後用random我們來做來試試看首先呢我們是不是把100去乘上math.random7624這樣那我們剛才有講到說5條件捨去我們應該怎麼把它捨去呢就是要把它包起來然後去math點floorok所以這裡1651這樣可以找就可以找到那因為這邊的值我們會得到的是什麼我們得到是0到99對不對我們這邊所有的值都是0到99點多對不對乘100以後是0到99點多嘛那我們想要1到100是有包含1也有包含100的情況下我是不是就把這整個所有的值去加1可以接受嗎因為5條件捨去是不是它最大99點多5條件捨去是不是變99那05條件捨去是不是就變0可是我要1到100然後有包含100和包含1那就是加1就可以了那我們把這個東西放到1到1到1001到1001到100然後哇我們來個不好意思喔放一下好那你如果是要0到100你怎麼做如果包含100然後0到100怎麼做請問一下你是不是要0到100我看一下喔你0到100的話你應該是要你用無條件捨去的方法的話你是不是要把它變成是101乘以10乘以random所以你會變成是0到100點多然後你再去取它的整數位這是類似像重數問題大家想一下這個重數問題比較抽象而且很難測出來因為你要一直跑一直跑然後你可能還測不到邊界條件好的這邊是15之1
影片逐字稿largev2
第十五章 來點數學吧好 首先我們在這個數學的章節裡面我們學到的是亂數 三角函數還有環狀排列物件那環狀排列物件呢 其實環狀這個東西 其實不是就是我覺得有點太環狀助列其實有點太難所以我們等一下會再講一些東西 沒關係好 首先我們先來講十五之一數學的類別 然後我們怎麼樣產生亂數然後再來我們要怎麼樣搭配無條件捨去法 就是floor就是math.floor 去讓得到一個亂數了以後呢我還可以得到一個整數的隨機的值好 首先math是Javascript的內置物件那它其實就有很多的數學工具你可以用它不是函數物件 它是一個內置物件好 然後也適用於number類型好 它的屬性和方法都是靜態的首先呢 你可以拿到數學常數math記得喔 math它這個是 第一個是dash然後它的e是dash它的e 然後還有pi 你就可以拿到這些數那當然這個pi也不是說是非常非常準確的它一定會有 因為它畢竟是小數嘛它一定會有差值好 在這邊呢我們可以拿到幾種好用的數學工具包含三角函數 對數 指數 還有其他的函數那我們高中算了那麼久這邊用程式直接幫你跑出來你就不用自己算 你只要會call它把公式丟進去 它就給你結果好了 我們看一下亂數好 那我們剛剛前面有提就是在中午休息的時候在做例子的時候有跟大家提到電腦無法實際產生真正的亂數就是它會用一些方法去用clock 去算出來畢竟這個亂數好的 那它的值這邊呢 是0到1之間不包含1 就是0到0.99多所以比如說 我們就直接來看一下我們的亂數這邊google然後我們可以到inspect element然後我們去跑我們的console這時候我們用math 就可以直接叫它叫出來 點 然後裡面有很多的工具OK那今天我們要用的是什麼呢我們要用的是randomOK 它這裡有一個小f代表random是一個function我們就直接叫它 就變成0.62再叫它0.2 再叫它0.09再叫它0.044那它其實非常的 我們也看不出什麼規律所以 好 它就是一個random好的那floor是什麼呢floor就是無條件捨去就是說 我有4.7 它會把小數點畫面砍掉好 那我們有這兩個工具以後我們也會乘法所以我們可以想說 0到1那我要0到100之間的亂數是不是我就直接把它乘以100然後它就不會包含100它就會到0到99之間所以你如果要得到1到100 有包含100的亂數的話你是不是要把它全部加1好 那我們先來看一下就是怎麼來做用floor然後用random我們來做 來試試看首先呢我們是不是把100去乘上math.random76 24 這樣那我們剛才有講到說無條件捨去 我們應該怎麼把它捨去呢就是要把它包起來然後去math.floorok 所以這裡是6 51這樣可以找到那因為這邊的值我們會得到的是什麼我們得到是0到99 對不對我們這邊所有的值都是0到99點多乘以100以後是0到99點多嘛那我們想要1到100是有包含1也有包含100的情況下我是不是就把這整個所有的值去加1可以接受嗎因為無條件捨去是不是它最大99點多 無條件捨去是不是變99那0 無條件捨去是不是就變0可是我要1到100然後有包含100和包含1那就是加1就可以了那我們把這個東西放到1到100然後那我們來個不好意思喔 開玩笑請問一下那你如果是要0到100你怎麼做如果包含100然後0到100怎麼做請問一下你是不是要0到100 我看一下喔你0到100的話你應該是要你用無條件捨去的方法的話你是不是要把它變成是101乘以乘以random所以你會變成是0到100點多然後你再去取它的整數位OK這是類似像重數問題 大家想一下這個重數問題比較抽象而且很難測出來因為你要一直跑一直跑然後你可能還測不到邊界條件好的 這邊是15-1