[ js ] chrome 的 Math.random() 好固定的感覺

看板Ajax作者 (人,原來不是人)時間6年前 (2017/06/25 16:08), 編輯推噓4(4025)
留言29則, 8人參與, 最新討論串1/4 (看更多)
不確定這問題該在哪一板問 同樣的程式碼在 firefox 上跑,還沒遇過兩次都一樣的結果 今天第一次用 chrome portable 測試,不管怎麼重新整理第一筆資料永遠都是同一筆 第二筆到第四筆則都是那幾筆資料在那邊輪流,更後面的就懶得觀察了 function rdm () { return (Math.random() > 0.5 ? 1 : 0) } dataArray.sort(rdm) google 後有看到 google 宣稱已經修復不夠隨機的問題了,不知道問題出在哪 把中斷點設在這兩個地方,也看不出來為什麼結果會不夠隨機 明明資料才 125 個而已,難道會是 portable 版本的問題嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.172.203.48 ※ 文章網址: https://www.ptt.cc/bbs/Ajax/M.1498378138.A.31D.html

06/25 17:56, , 1F
sort 不是這樣用的...
06/25 17:56, 1F

06/25 19:12, , 2F
我猜你想找的東西是 array shuffle
06/25 19:12, 2F

06/25 22:26, , 3F
去讀sorting的演算法 這做法是錯的
06/25 22:26, 3F

06/26 00:34, , 4F
這段程式說的是... dataArray要有大約一半排在前面,
06/26 00:34, 4F

06/26 00:34, , 5F
看了別人對 -1、0、1的解釋,改成 1: -1 就正常了
06/26 00:34, 5F

06/26 00:35, , 6F
大約一半排在後面,但沒有要求這一半裡面要怎麼排啊 ?_?
06/26 00:35, 6F

06/26 00:35, , 7F
這樣跟文中描述的用途好像不太一樣...
06/26 00:35, 7F

06/26 00:39, , 8F
是想讓陣列裡面的資料順序不要一直重複,是不太懂為什麼在
06/26 00:39, 8F

06/26 00:40, , 9F
chrome 的結果跟 firefox 有明顯差距,只好當成sort的實作不
06/26 00:40, 9F

06/26 00:41, , 10F
一樣,在找到改成 -1 的解法之前,也用了另一個打散順序的方
06/26 00:41, 10F

06/26 00:41, , 11F
式,雖然那個方式的程式碼比較多一些
06/26 00:41, 11F

06/26 00:57, , 12F
js的排序沒有定義相同時怎麼辦,這樣寫如果遇到sort實作
06/26 00:57, 12F

06/26 00:57, , 13F
是stable時,會蠻重覆的...
06/26 00:57, 13F

06/26 00:59, , 14F
當然ff跟chrome當前版本(印象中)都unstable啦,但依賴實
06/26 00:59, 14F

06/26 00:59, , 15F
作的特性不會感覺毛毛的嗎... O_O
06/26 00:59, 15F

06/26 05:40, , 16F
用 sort 洗牌只有一個方法是正確的
06/26 05:40, 16F

06/26 05:41, , 17F
就是給每個元素一個亂數值, 然後依照那個亂數值排序
06/26 05:41, 17F

06/26 05:41, , 18F
用隨機傳比較結果的問題在於回傳結果是不一致的
06/26 05:41, 18F

06/26 05:41, , 19F
同樣兩個元素可能這一次是 1 下一次是 -1
06/26 05:41, 19F

06/26 05:42, , 20F
也就是不符合所謂的「全序性」, 會排出什麼是不可預料的
06/26 05:42, 20F

06/26 07:22, , 21F
就是想要那個不可預料,但chrome卻一直變成可預料...
06/26 07:22, 21F

06/26 19:07, , 22F
我想LPH大大的不可預料指的不是隨機吧....XD
06/26 19:07, 22F

06/26 21:13, , 23F
只有我覺得原PO的隨機想法其實沒問題嗎 @@
06/26 21:13, 23F

06/26 21:21, , 24F
只有你
06/26 21:21, 24F

06/26 21:31, , 25F
用sort不會是隨機分布,每個元素的最終位置分布的機率會受
06/26 21:31, 25F

06/26 21:32, , 26F
開始位置影響,而且用sort複雜度還比較高,大有問題
06/26 21:32, 26F

06/26 21:34, , 27F
更不用說實際上還會受到不同瀏覽器的sort實作影響
06/26 21:34, 27F


06/26 21:41, , 29F
https://goo.gl/p0Mo Firefox也一樣不均,只是沒那麼明顯
06/26 21:41, 29F
文章代碼(AID): #1PJs-QCT (Ajax)
文章代碼(AID): #1PJs-QCT (Ajax)