gpt4 book ai didi

java - 在Java中有效地生成随机非重复数字列表

转载 作者:行者123 更新时间:2023-12-04 04:49:30 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





random number generator from a range for continuos analysis

(2 个回答)


8年前关闭。




我需要在 Java 中尽可能高效地生成一个 0 到 1000 之间的非重复随机数列表。我现在只有 2 个想法,想知道是否还有其他更好的想法,如果没有,我应该使用以下哪个想法?

  • 生成一个 0 到 1000 之间的随机数 r 并将其添加到另一个名为 randomArray[r] 的数组中,索引为 r
  • 生成另一个随机数并检查 randomArray[r] 是否尚未存储先前生成的随机数
  • 继续,直到我完成
  • 生成一个数组并用其索引
  • 填充其元素
  • 像疯了一样洗牌(还有,我怎样才能有效地做到这一点?)
  • 从头开始使用数组中的元素值。

  • 谢谢!

    最佳答案

    java.util.Collections.shuffle方法以相同的可能性对 List 进行混洗。创建一个 List 并添加从 0 到 1000 的值。然后使用此方法对 List 进行洗牌。

    List l = new ArrayList();
    for(int i = 0; i <= 1000; i++)
    l.add(i);

    Collections.shuffle(l);

    现在列表包含混洗后的值。

    关于java - 在Java中有效地生成随机非重复数字列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17636319/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com