在Java中生成数百万个不重复的随机数

2024-02-11

我有一个问题,我可以使用什么算法在Java中生成一组2^21随机唯一数字? java中除了math.random之外还有另一个生成随机数的库吗?

提前致谢!


关键问题是你所说的“数字”是什么意思?

一般来说,这个问题可以通过“生成一个数字列表,将其按随机顺序排列,取出其中的前 2^21 个”来解决 第一部分很琐碎 第二部分可以通过fisher yates算法解决 真正的问题是如果您想使用非常大的数字空间。那么你需要一个懒惰的解决方案

这是我要做的: 使用数据结构来表示表面看起来像数组的列表,但内部使用基于哈希表的稀疏数组表示形式来表示。此外,如果在尝试从单元格中读取数据时,如果您没有命中哈希值中的某些内容,则只需返回该单元格的索引即可。

您修改后的渔民值停在 2^21 处index变量并使用随机变量j之间index和数组的“长度”(整数的数量)

这种惰性方法会在 O(n) 时间和 O(n) 空间中生成任何类型数字的随机非重复列表,其中 n 是您尝试生成的数组的长度。这是你能做的最好的事情了。

关于 Fisher-Yates 的解释http://en.wikipedia.org/wiki/Fisher-Yates_shuffle http://en.wikipedia.org/wiki/Fisher-Yates_shuffle

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在Java中生成数百万个不重复的随机数 的相关文章

  • 将处理项目移至 Eclipse

    我已经在处理项目上工作了一段时间 现在想将其移至 Eclipse 中 我已经在 Eclipse 环境中安装了 Proclipse 我有很多扩展名为 pde 的文件 然而 Proclipse 文件都以 java 结尾 所有 pde 文件都存在
  • Java,顺序流在哪个线程中执行?

    在阅读有关流的文档时 我遇到了以下句子 attempting to access mutable state from behavioral parameters presents you with a bad choice if you
  • 为什么梅森扭转器比线性同余发生器更快?

    我使用 gcc C 标准库的梅森扭曲器实现进行了测试 它的性能优于线性同余发生器和 Crand 这很可能是 LCG 提升文档 http www boost org doc libs 1 58 0 doc html boost random
  • Hashset - 创建 Set 后使对象相同

    如果我们在 HashSet 中添加两个不同的对象 可变的 然后通过调用 setter 更改对象的值 使它们相同 则大小仍然是 hashSet 的 2 我无法理解其原因 public static void main String args
  • 垂直 ViewPager 中的动画

    我需要垂直制作这个动画ViewPager https www youtube com watch v wuE 4jjnp3g https www youtube com watch v wuE 4jjnp3g 这是我到目前为止所尝试的 vi
  • Java 小程序在 Mac 上闪烁

    这个问题很奇怪 问题并非在每个平台上都会发生 我在使用 MacOSX 的 Google Chrome 中出现了这种情况 但在 Safari 中却没有出现这种情况 对于使用 Windows 的朋友来说 在 Google Chrome 上运行得
  • 在 Eclipse 3.5 上安装旧版 TestNG 插件时出现问题

    我正在尝试在 eclipse 3 5 上安装 TestNG 5 11 并获得以下信息 eclipse buildId unknown java version 1 6 0 19 java vendor Sun Microsystems In
  • 获取Android库中的上下文

    我正在编写一个 Android 应用程序 它的一些功能封装在内部库中 但是 要使此功能发挥作用 库需要一个应用程序上下文的实例 为图书馆提供这种上下文的最佳方式是什么 我看到了一些选择 但没有一个有吸引力 Have my library c
  • 绘制平滑曲线

    我想创建更平滑的曲线 而不仅仅是线角 这是我现在画的图 这是我的代码 case FREEHAND float pts float ptk ptk new float 2 imageMatrix invert inv if mCurrentS
  • 避免 @Secured 注释的重复值

    我正在尝试使用以下方法来保护我的服务方法 Secured如下 public interface IUserService Secured ROLE ROLE1 ROLE ROLE2 ResponseEntity saveUser Creat
  • RxJava android mvp 单元测试 NullPointerException

    我是 mvp 单元测试的新手 我想对演示者进行一个非常基本的测试 它负责登录 我只想断言 view onLoginSuccess 这是演示者代码 public LoginPresenter LoginViewContract loginVi
  • Java HashSet 是线程安全的只读吗?

    如果我通过 Collections unmodifyingSet 运行 HashSet 实例后 它是线程安全的吗 我问这个是因为 Set 文档声明它不是 但我只是执行读取操作 来自 Javadoc 请注意 此实现不是同步的 如果多个线程同时
  • 如何在 spring-data 中强制使用 CrudRepository 进行预加载?

    我有一个实体 其中包含List就是这样lazy默认加载 interface MyEntityRepository extends CrudRepository
  • Java 8 方法签名不一致

    Java 8 为我们提供了具有很长签名的新方法 如下所示 static
  • 无法连接到docker中的elasticsearch容器

    我正在尝试使用 docker 的官方 elasticsearch 镜像 我遵循了本指南 https www elastic co guide en elasticsearch reference current docker html但是当
  • Spring - 如何在不匹配列名的情况下使用 BeanPropertyRowMapper

    我正在开发一个应用程序 该应用程序已使用行映射器从纯 JDBC 转换为 Spring 模板 我遇到的问题是数据库中的列与属性名称不匹配 这阻止我使用BeanPropertyRowMapper容易地 我看到一些关于在查询中使用别名的帖子 这会
  • 使用 Java 8 Spring 4 + MyBatis 集成问题

    使用 Java 8 1 8 0 60 Spring 4 2 1 和 MyBatis 3 3 0 时遇到以下异常 Sep 29 2015 11 02 58 AM org springframework context annotation A
  • 为什么不能在 if 语句中声明变量?

    以下 Java 代码无法编译 int a 0 if a 1 int b 0 if a 1 b 1 为什么 不能有任何代码路径导致程序将 1 分配给b无需先声明 我突然想到b的变量范围可能仅限于第一个if声明 但后来我不明白为什么 如果我实在
  • 在java中执行匿名pl/sql块并获取结果集

    我想执行匿名 PL SQL 并需要获取结果集对象 我得到了可以通过在 PL SQL 块内使用游标来完成的代码 但 PL SQL 块本身将以文本形式来自数据库 所以我无法编辑该 PL SQL 块 并且它只会返回两个值 其列名始终相同 它将返回
  • 如何在J2ME中获取数字的幂[重复]

    这个问题在这里已经有答案了 可能的重复 J2ME power double double 数学函数实现 https stackoverflow com questions 2076913 j2me powerdouble double ma

随机推荐

  • MPAndoid 图表具有以下样式

    我在我的项目中使用 MPAndroid Chart 我想将 LineChart 的样式设置如下 基本上我想要所有 4 个象限和其他样式 如渐变颜色等 首先通过这样做来填充线条后面的颜色 dataset setDrawFilled true
  • 如何从 STL 容器中获取仅移动类型?

    让我们考虑一个std unordered set of std unique ptr
  • 保存文件后自动启动单元测试

    借助 Ruby on Rails 当我保存代码文件时 我可以使用自动测试来自动运行所有测试 此外 该框架仅启动受更改影响的测试 并通知我测试结果 我使用Eclipse进行java开发有类似的情况吗 我不想要为我生成测试的东西 它只是应该在正
  • 使用 PHP 检索文本区域的值

    有人可能知道如何使用 PHP 获取 HTML 文档中特定元素的值吗 我现在正在做的是使用file get contents从另一个网站提取 HTML 代码 该网站上有一个文本区域
  • 关闭模态并滚动到 div

    contact form click function html body animate scrollTop contact section offset top 2000 div class modal fade div class m
  • 在 ImageButton 中动态更改图像

    XML
  • 使用 Swift 推断类方法中的泛型类型

    泛型方法是否可以根据执行它的类来推断其类型 我使用 CoreData NSManagedObject 模型来存储和检索本地数据 并设法以一种易于阅读和可用的方式使所有内容通用 除了在一个地方 如果用户希望查询本地数据库以获取对象列表 他将编
  • 在c#中添加或删除新记录后刷新gridview

    我的页面上有一个网格 我需要刷新 gridview 添加和删除新记录 但它不是 这是代码 将行添加到 GridView private void AddClientToGrid int clientID int Parse ddlClien
  • <导航> 或 <菜单> (HTML5)

    W3Schools com 并且我很确定我记得看到过 W3C org 声明 menu 应用于工具栏菜单和列表表单控制命令 那么 我的主菜单应该使用哪一个呢 Nav or Menu 有关系吗 nav用于内部链接组 a元素 一般来说 这意味着链
  • PDFBox - 获取单词位置(而不仅仅是字符)

    是否可以使用 PDFBox 获取单词的位置 类似于 processTextPosition 似乎 processTextPosition 仅在单个字符上调用 将它们合并为单词的代码是 PDFTextStripper 在 规范化 中 方法的一
  • PHP SQL:如果变量为空则跳过查询部分的方法

    我正在编写一个查询 该查询使用搜索表单中的输入 其中品牌 类型和价格是可选输入字段 SELECT FROM database WHERE brand LIKE brand AND type LIKE type AND price LIKE
  • 配置选项错误:\377\376h

    我正在将我的系统设置为代码提交 但出现以下错误 我点击了以下链接 https docs aws amazon com codecommit latest userguide setting up ssh windows html https
  • 当服务器发送 HTML 而不是图像数据时,是否可以捕获失败的 IMG 加载?

    我有一个网站链接到其他网站上的不同图像 有时这些图像已被删除或域不再存在等 为了不显示这些图像并删除它们 我使用 jQuery 来执行此操作 catch image load errors img error function read o
  • Swift 1.2 中的 @noescape 属性

    Swift 1 2 中有一个新属性 在函数中带有闭包参数 正如文档所述 这表明 参数仅被调用 或作为 noescape 调用中的参数 这意味着它不能 比调用的生命周期更长 据我了解 在此之前 我们可以使用 weak self 不要让闭包有强
  • 如何从 TFS 控制下的项目中删除空文件夹?

    假设我有一个项目 MyLib 在该项目下 我创建了一个文件夹 例如Folder1 该文件夹下没有文件 该项目已连接到 TFS 然后我想删除这个文件夹Folder1 我从上下文菜单中删除了它 并将项目签入 TFS 然后我使用 Team Exp
  • 传递给函数的原始变量名? [复制]

    这个问题在这里已经有答案了 可能的重复 PHP 获取作为参数传递的变量的名称 https stackoverflow com questions 2379166 php get name of variable passed as argu
  • 服务层是否应该接受来自控制器的 DTO 或自定义请求对象?

    正如标题所示 设计服务层时的最佳实践是什么 我确实理解服务层应该始终返回 DTO 以便域 实体 对象保留在服务层中 但是控制器向服务层的输入应该是什么 下面我提出三点我自己的建议 方法一 在此方法中 域对象 Item 保留在服务层内 cla
  • PowerMock 测试通过然后失败

    为什么我的单元测试在独立运行时通过 但在运行多个测试时失败 当我执行单个单元测试时 我的测试将成功模拟并返回预期结果 但是 当我运行所有单元测试时 我之前通过的测试将失败 一次试运行 shouldDoThisAgain 通过 多次测试运行
  • Linq:GroupBy、Sum 和 Count

    我有一系列产品 public class Product public Product public string ProductCode get set public decimal Price get set public string
  • 在Java中生成数百万个不重复的随机数

    我有一个问题 我可以使用什么算法在Java中生成一组2 21随机唯一数字 java中除了math random之外还有另一个生成随机数的库吗 提前致谢 关键问题是你所说的 数字 是什么意思 一般来说 这个问题可以通过 生成一个数字列表 将其