试图规划一个函数,我想获得一些输入。我试图找到一种有效的途径:Java脚本随机数组函数
双数字阵列中的
频率随机化数组中的值的位置。
例如:可以说我有一个数组。 [0,1,2,3]
首先我想在新数组中重复每个数字一次。所以现在我们会有这样的事情。
[0,0,1,1,2,2,3,3]
。最后,我想随机化这些值,以便:
[0,4,2,3,0,2,3,4]
最后,我写的算法将需要处理的18位数字的初始阵列(因此最终,随机阵列将是尺寸的36)
我的初始想法是只有一个简单的while循环:
- 随机选择新的数组 0123在一个部位
- 检查它是否已满 - 如果它已满,则将选择一个新点并再次检查。
- 如果它没有填满,那么它会将值放入新数组中,并转到下一个值。
我没有留下一些细节等,但我希望这个算法相当快,以便用户不会注意到任何东西。
我担心的是,当只剩下一位数字时,算法将永远放置它,因为它将有1/36的机会选择空白空间。
一般而言,如何才能做出更智能,更快速的算法来完成我想要做的事情?
非常感谢!
1)简明的方法是'var newArr = arr.concat(arr);'。 2)[如何随机化(洗牌)JavaScript数组?](http://stackoverflow.com/q/2450954/218196) – 2014-12-04 16:01:16