伊莉討論區

標題: 如何將亂數演算法分成四個人 [打印本頁]

作者: qq40415    時間: 2015-12-16 07:39 PM     標題: 如何將亂數演算法分成四個人

請問各位大大,如何將已經亂數的A~Z 分給四個人,懇請求解
程式碼如下:


<html>
<head>
<title>Shuffle Demo</title>
<script>
function run() {
    var d = document.getElementById("display");   
    var a = "abcdefghijklmnopqrstuvwxyz".split("", 26);
    var i = a.length;
    while (i) {
        var j = parseInt(Math.random() * i);
        var k = a[--i];
        a = a[j];
        a[j] = k;
    }
     
    d.innerHTML += a;
}
</script>
</head>
<body onload="run()">
<div id="display"></div>
</body>
</html>

在此謝謝各位


作者: snowflying    時間: 2015-12-18 03:24 AM

[ 本帖最後由 snowflying 於 2015-12-18 03:24 AM 編輯 ]

要不要先用[code] [/code]包起來呀?
[i] 被詮釋成斜體了
而且分給四個人是怎麼個分法?
有什麼地方存放個別拿到的部分嗎?

作者: inunu    時間: 2016-3-2 11:53 AM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: Semisphere    時間: 2017-2-1 10:25 PM

本帖最後由 Semisphere 於 2017-2-1 10:27 PM 編輯

原po code中
  1. a = a[j];
複製代碼
會複寫a原本的內容,後面會有機會沒辦法亂數再取a內元素出來,得先確認一下。

同樓上也覺得需要先定好分配規則,若隨機排序後直接分4組[7,7,7,5],那可參考如下code。另我使用Lodash.js處理隨機取出與分組。
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>Shuffle Demo</title>

  5. <script src="使用Lodash.js的cdn連結"></script>

  6. <script>
  7. function run() {
  8.     var d = document.getElementById("display");   
  9.     var a = "abcdefghijklmnopqrstuvwxyz".split("", 26);
  10.     var r = _.shuffle(a);
  11.     var b = _.chunk(r, 7);
  12.     var c = _.join(b,'<br>')
  13.     d.innerHTML = c;
  14. }
  15. </script>
  16. </head>
  17. <body onload="run()">
  18. <div id="display"></div>
  19. </body>
  20. </html>
複製代碼
可能結果如下:
  1. b,q,n,l,d,t,c
  2. m,v,u,k,o,y,h
  3. w,g,s,p,j,e,z
  4. x,f,i,a,r
複製代碼





歡迎光臨 伊莉討論區 (http://s03.p01.eyny.com/) Powered by Discuz!