PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
Ajax
Re: [ js ] chrome 的 Math.random() 好固定的感覺
作者:
eight0
(欸XD)
2017-06-26 20:41:44
這是演算法問題,和 JS 無關。這個做法是完全錯誤的,即使改成了 1 : -1 也一樣。
你給的比較方法為「比較兩元素,有 50% 機率左邊比較大,50% 機率右邊比較大」
就來試試,用在簡單的排序法上(兩兩互相比較)︰
若你有兩個元素 [A, B],A 在第一個位置的機率是 50% 嗎?
畫成樹狀圖(A:B 意思是 A, B 相比較)︰
A:B
↙ ↘
A大 B大
位置 1 2
每次分岔都是各 50% 的機率。用你的函式,的確是可以達成
「50% 的機率 A 會在第一個」
但是若有三個元素 [A, B, C]︰
A:B
↙ ↘
A大 B大
↙ ↘
A:C A:C
↙ ↘ ↙ ↘
A大 C大 A大 C大
位置 1 2 2 3
A 有 25% 的機率是第排在一個、50% 的機率是第二個、25% 的機率是第三個。
這結果應該不能稱作「夠隨機」吧?明明資料才 3 個而已。
根據排序方法的不同,畫出來的樹狀圖也不同,上面畫的樹狀圖只是直覺的把三樣元素
比較後排序,而瀏覽器所選擇的排序法也許不同,產生的結果可能更「不夠隨機」了。
如果想找更深入的討論或數學證明,可以 google: sort with random comparator
※ 引述《art1 (人,原來不是人)》之銘言:
: google 後有看到 google 宣稱已經修復不夠隨機的問題了,不知道問題出在哪
這是指什麼不夠隨機?連結?
: 難道會是 portable 版本的問題嗎?
為什麼會覺得這問題和 portable 版本有關?是 portable 版才有的現象嗎?
另外,推文提到的「不可預料」是指「無法預料會得到什麼結果」,
換句話說,就算程式沒有按照你預想的方向走也是正常狀況(甚至當機)。
作者:
art1
(人,原來不是人)
2017-06-26 22:30:00
我都是用portable版的,沒裝過安裝版,所以懷疑是否因此影響
https://goo.gl/jgScjd
作者:
oToToT
(å±å©)
2017-06-26 23:49:00
大多應該都是merge或quick吧,你亂搞大小感覺他也會亂搞順序,而且隨機性不高
繼續閱讀
[ js ] chrome 的 Math.random() 好固定的感覺
art1
[問題] React Native的State
harryfly
[問題] 首頁使用Masonry 遇到問題
trimrose
[問題] npm install 安裝失敗問題
fun4i0220
Re: [問題] 為什麼是false
WhaDa
[問題] 為什麼是false
WhaDa
[ js ] 正規表達式 exec 跟 match 的差異
art1
[問題] (滿編)請問有大大願意一起學前端嗎?(台北
tedmax100
[問題] jq slider touch 套件
chiawu
[問題] angularjs $http函數問題
supercygnus
Links
booklink
Contact Us: admin [ a t ] ucptt.com