2014-12-31 69 views

回答

5

Math.random()返回0.0(含)和1.0(不含)之間的雙倍數。

乘以6,你會得到0.0(含)和6(不含)之間的雙倍。

它轉換成int,你會得到0和5之間的整數

添加1,你會得到一個隨機整數1至6之間

4

Math.random返回0之間的隨機實數(包括)和1(不包括)。然後
Math.random*6將給出0(包含)和6(不包括)之間的實數。
(int)(Math.random*6)將在(0,1,2,3,4,5)中將其變爲int。
總結+1以獲得1至6之間的東西(擲骰子)。

1

dice1是一個引用dice1的對象。 Math.random()表示Math包中的隨機方法。 * 6會返回一個介於0和5之間的數字。 +1使其介於1和6之間。 這是以int形式投射的,這意味着它會變成數字。

1

Math.random()產生的數字範圍爲0到0.9999 .....乘以6的變化範圍爲0.00到5.9999 ..... int然後截斷,產生0,1,2,3,4 ,或5.加1然後產生最後的1..6,

2

這不是一個等式,而是一個賦值。

Math.random()產生範圍[0,1)內的隨機數。乘以6,你會得到一個範圍[0,6)的數字。然後將該數字截斷爲int,並添加一個,以獲得範圍[1,7]中的整數,這與[1,6]相同,因爲我們正在處理整數。爲了長話短說 - 這個任務產生一個介於1和6之間(包括1和6)的隨機數,以模擬滾動死亡。

1

很多答案可以說明公式爲什麼會在正確範圍內給出結果,但沒有解決這些結果分佈的答案。隨機數的分佈與其範圍同樣重要。

Math.random()產生的數字是均勻分佈在[0.0,1.0)範圍內的。 (您可能還記得,符號[x,y)其中XŸ表示該範圍包含一切不包括Ÿÿ,包括之間X X但)均勻分佈意味着,如果你可以採取任何子範圍,例如[a,b)其中0.0≤ab≤1。0,返回值在該範圍內的概率是b-a。也就是說,概率僅取決於子範圍的寬度,而不取決於開始的位置。

乘以6.0,你有一個仍然是均勻分佈的數字,但現在在範圍[0.0,6.0)。想象一下,分爲六個子範圍[0.0,1.0),[1.0,2.0),...,[5.0,6.0)。所有這些子範圍都有相同的寬度,所以數字落入其中任何一個的概率與其落入其他概率的概率完全相同。

這些子範圍還具有這樣的屬性,當您將其中一個數字轉換爲(int)時,您會在該範圍的底端獲得數字(當然是int)。例如,將[3.0,4.0)中的任何東西都轉換爲int將給出3.

由於數字同樣可能在任何範圍內,所以在轉換爲int之後,您有一個0到5的整數,每個這六個整數與任何其他整數一樣可能。也就是說,您現在有一個整數0到5的均勻分佈。

加1以獲得1至6範圍內的均勻分佈的整數。