当前位置:  开发笔记 > 编程语言 > 正文

变量i减去1的目的是什么?是 - 1对于公平随机化真的是必要的吗?

如何解决《变量i减去1的目的是什么?是-1对于公平随机化真的是必要的吗?》经验,为你挑选了1个好方法。



1> indjev99..:

数组的索引从0到其大小减1.由于i从list.size()开始,比最后一个元素的索引多1,并且在索引2处结束,因此需要从i减去1.另一种选择是

 public static void shuffle(List list, Random rnd) {
    for (int i = list.size() - 1; i > 0; i--)
        swap(list, i, rnd.nextInt(i+1));
}


那应该是:`swap(list,i,rnd.nextInt(i + 1));`否则你永远不会将一个条目交换到列表中的最后一个元素,这意味着它不是一个公平的shuffle函数.
推荐阅读
谢谢巷议
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有