随机排列实现 -shuffle算法

洗牌算法(shuffle):原理是,一个数A,随机选一个在这个数A之前的下标,将这个下标对应数字与A对换;之后不再考虑最后的这一个数;

类似于无放回的抽签问题;

function shuffleArray(totalLength) {let randomArray = {}, randomIndex, temp;for (let i = 0; i < totalLength; i ++) {randomArray[i] = i;}//var randomArray = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};for (let i = totalLength - 1; i >= 0; i --) {randomIndex = Math.floor(Math.random() * (i + 1));temp = randomArray[randomIndex];randomArray[randomIndex] = randomArray[i];randomArray[i] = temp;}return randomArray;}

随机排列实现 -shuffle算法相关推荐

  1. Fisher–Yates shuffle 算法

    简单来说 Fisher–Yates shuffle 算法是一个用来将一个有限集合生成一个随机排列的算法(数组随机排序).这个算法生成的随机排列是等概率的.同时这个算法非常高效. Fisher–Yate ...

  2. 关于Knuth Shuffle算法

    这个算法是我前几天才听说的,觉得挺有意思,来写一写.好像出处是TAOCP,但我没看过.#(快哭了) 有的时候我们需要打乱一个排列的顺序,比方说在机器学习里面我们通常都会对一个数据集进行shuffle. ...

  3. NCR Shuffle算法原理

    NCR Shuffle算法原理 刘永胜    2006年于广州 NCR的Shuffle(混淆)算法,做ATM的很多都知道,并且都使用有封装好的现成接口,但是基本没有多少人知道其算法原理,所以将原理写在 ...

  4. C#:实现随机洗牌Knuth-Durstenfeld Shuffle算法​(附完整源码)

    C#:实现随机洗牌Knuth-Durstenfeld Shuffle算法 public static void Shuffle<T>(T[] a) {Random rnd = new Ra ...

  5. shuffle算法c语言,C#Shuffle算法(洗牌算法、抽样算法)

    Fisher-Yates Shuffle算法 1.创建一个新的list 2.随机取出当前0-list.Count其中一个数 3.把老list当前随机数位置添加到新list 4.老list删除这个数 5 ...

  6. matlab中如何随机排列,科学网—对图片进行拆分并随机排列的快速算法(MATLAB) - 徐磊的博文...

    我手头快完成的一个改进荧光显微镜图像处理的研究项目需要用到拆分一个图片,并对其进行随机排列的功能.之前我写的程序虽然能够得到想要的结果,但是运行太慢,非常耗时.原方法是计算图片被拆分成的各个方格的位置 ...

  7. JS中数组随机排序实现(原地算法sort/shuffle算法)

  8. shuffle洗牌算法java_洗牌算法shuffle

    洗牌算法 1.   背景 阿里的面试的时候做的一道笔试题:题目:写一个方法,入参为自然数n  (n > 0),返回一个自然数数组,数组长度为n,元素为[1,n]之间,且每个元素不重复,数组中各元 ...

  9. 洗牌算法shuffle

    对这个问题的研究始于一次在群里看到朋友发的洗牌面试题.当时也不知道具体的解法如何,于是随口回了一句:每次从剩下的数字中随机一个.过后找相关资料了解了下,洗牌算法大致有3种,按发明时间先后顺序如下: 一 ...

最新文章

  1. 搜索引擎学习资源收集
  2. 【Spring注解驱动开发】java工作流引擎框架
  3. linux虚拟网络设备之veth(二)
  4. autoenv的使用方法
  5. 网页加载出现没有合适的负载均衡器_分布式必知必会-七层负载和四层负载到底是什么?...
  6. java jframe tab_java Swing实现选项卡功能(JTabbedPane)实例代码
  7. 一个简单的 javascript 中的正则表达式例子
  8. 到外企应聘如何准备英文简历(Tips for Resume)
  9. js 动态添加标签元素并赋值
  10. 在线直播系统搭建的功能包含哪些?
  11. 图像检测与分割标注文件XML/JSON/TXT一键批量转换编辑软件
  12. mysql基于PHP下的大学生校园交流论坛的设计与实现 毕业设计源码101634
  13. oracle rac定时清理归档日志,Rman 定时删除归档日志
  14. rabbitmq配置guest用户远程访问失败
  15. 服务器微信互通是什么意思,妄想山海微信区和QQ区互通吗,服务器互通数据详解...
  16. Java基础--数值和字符串
  17. Failed to read artifact descriptor for xxx:jar的问题解决
  18. 树莓派mjpg-streamer+内网穿透
  19. chromel浏览器老是提示adobe flash player已过期
  20. fiddler如何看

热门文章

  1. 前端学习(2386):远程仓库的issue
  2. 前端学习(2183):tabber--基本架构的构建
  3. java学习(50):子类继承会优先调用父类的构造器
  4. 实例43:python
  5. php评星,jQuery+PHP星级评分实现方法
  6. 关于python变量的描述_Python变量命名的详细介绍
  7. 三个不等_2道真题,讲透「基本不等式」的使用原则 | 真题精讲-11
  8. echarts轨迹图,各个城市线路图轨迹如何取值
  9. 用户思维模型,围绕用户核心四大模块,拉新、养熟、成交、裂变循环的效果...
  10. C#-ToString格式化