随机化一个 BigInteger

2024-01-12

I'm looking to randomize a BigInteger. The intent is to pick a number from 1 to 8180385048. Though, from what I noticed, the BigInteger(BitLen, Random) does it from n to X2-1, I'd want some unpredictable number. I tried to make a method that would do it, but I keep running into bugs and have finally given in to asking on here. :P Does anyone have any suggestions on how to do this?


从文档来看Random.nextInt(int n) http://download-llnw.oracle.com/javase/6/docs/api/java/util/Random.html#nextInt%28int%29显然需要解决同样的问题,他们似乎得出的结论是,你不能比“超出范围时重新采样”做得更好,但惩罚预计可以忽略不计。

来自文档:

The algorithm is slightly tricky. It rejects values that would result in an uneven distribution (due to the fact that 231 is not divisible by n). The probability of a value being rejected depends on n. The worst case is n=230+1, for which the probability of a reject is 1/2, and the expected number of iterations before the loop terminates is 2.

我建议你简单地使用随机化构造函数 http://download.oracle.com/javase/6/docs/api/java/math/BigInteger.html#BigInteger%28int,%20java.util.Random%29您提到并迭代,直到达到范围内的值,例如如下所示:

public static BigInteger rndBigInt(BigInteger max) {
    Random rnd = new Random();
    do {
        BigInteger i = new BigInteger(max.bitLength(), rnd);
        if (i.compareTo(max) <= 0)
            return i;
    } while (true);
}

public static void main(String... args) {
    System.out.println(rndBigInt(new BigInteger("8180385048")));
}

对于您的特定情况(最大值 = 8180385048),必须重申的概率(即使一次)约为 4.8%,所以不用担心:-)

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

随机化一个 BigInteger 的相关文章

  • 如何将变量的全部内容发送/导出到文本文件/xml 文件/剪贴板?

    我想将实例的内容 最好以树形形式 发送给某人 打印屏幕是不行的 因为类太复杂了 您需要将输出转回实例吗 在这种情况下 其他答案都是正确的 如果您只想手动检查实例的内容 理想情况下您的类都将实现toString 你可以将其重定向到一个文件 如
  • 在Java中将*s打印为三角形?

    我在 Java 课程中的作业是制作 3 个三角形 一份左对齐 一份右对齐 一份居中 我必须为什么类型的三角形制作一个菜单 然后输入需要多少行 三角形必须看起来像这样 到目前为止 我能够完成左对齐的三角形 但我似乎无法获得其他两个 我尝试用谷
  • 如果列名不同,则一对多休眠连接

    我有三个具有以下结构的表 合同 gt Contract id 主要 customer company id Vendor company id 公司 gt Company id 主要 创建日期 创建者 Company Timeline gt
  • 如何在 Java 中访问嵌套的 HashMap?

    我有一个 Java 中的 HashMap 其中的内容 你们可能都知道 可以通过以下方式访问 HashMap get keyname 如果一个 HashMap 位于另一个 HashMap 中 即嵌套的 HashMap 我将如何访问内容 我可以
  • 如何在log4j的配置文件中为文件附加器提供环境变量路径

    我有一个log4j xml配置文件 和一个RollingFileAppender我需要提供用于存储日志的文件路径 问题是我的代码将作为可运行的 jar 部署在 Unix 机器上 所以如果我传递这样的参数 value logs message
  • JavaFX 2.0 FXML 子窗口

    经过多次搜索我发现了这个问题如何创建 javafx 2 0 应用程序 MDI https stackoverflow com questions 10915388 how to create a javafx 2 0 application
  • java中的单链表和双向链表?

    在java中 哪个集合接口可以有效地实现单链表和双向链表 请问代码示例吗 毫不奇怪 实现双向链表的正确接口是 LinkedList 看Java文档 http docs oracle com javase 8 docs api java ut
  • 当 JMS Prod 位于辅助 POJO 类中时,如何在事务中包含 JMS Producer

    简短的问题 有没有办法强制无状态 EJB 调用的 POJO 存在于 EJB 的上下文中 以便事务和资源注入可以在 POJO 中工作 具体来说 在我想要做的事情的上下文中 如何在 EJB 的事务中包含 POJO JMS 生产者 该生产者在调用
  • 在 Java 中创建 T 的新实例

    在C 中 我们可以定义一个泛型class A
  • java.lang.Object的hashCode具体使用的算法是什么

    中使用的算法是什么JVM实施java lang Object的隐含的hashCode 方法 OpenJDK or Oracle JDK答案中首选 它依赖于实现 并且在很大程度上 该算法是entirely取决于实施 只要它是一致的 但是 根据
  • 从 Android 访问云存储

    我一直无法找到任何有关如何从 Android 应用程序使用云存储的具体文档 我确实遇到过这个客户端库 https cloud google com storage docs reference libraries然而 Google Clou
  • Android 解析 JSON 卡在 get 任务上

    我正在尝试解析一些 JSON 数据 我的代码工作了一段时间 我不确定我改变了什么突然破坏了代码 当我运行代码时 我没有收到任何运行时错误或警告 我创建一个新的 AsyncTask 并执行它 当我打电话时 get 在这个新任务中 调试器在此行
  • 如何在 Bean Validation 1.0 中构造 ConstraintViolationException?

    我对 javax validation API 感到困惑 我正在编写一个简单的测试来理解它 Sample sample new Sample Set
  • 多线程——更快的方法?

    我有一堂有吸气剂的课程getInt 和一个二传手setInt 在某个领域 比如说领域 Integer Int 一个类的一个对象 比如说SomeClass The setInt 这里是同步的 getInt isn t 我正在更新的值Int来自
  • 在循环中按名称访问变量

    我正在开发一个 Android 项目 并且有很多可绘制对象 这些绘图的名称都类似于icon 0 png icon 1 png icon 100 png 我想将这些可绘制对象的所有资源 ID 添加到整数 ArrayList 中 对于那些不了解
  • Java和手动执行finalize

    如果我打电话finalize 在我的程序代码中的一个对象上 JVM当垃圾收集器处理这个对象时仍然再次运行该方法吗 这是一个大概的例子 MyObject m new MyObject m finalize m null System gc 是
  • Android项目中使用java获取电脑的IP地址

    我在用ksoap2 android http code google com p ksoap2 android 我需要使用java获取IP地址 这样我就不必每次都手动输入它 我所说的 IP 地址是指 例如 如果我这样做ipconfig使用命
  • 如何将库添加到 LIBGDX 项目的依赖项 gradle

    一切都在问题中 我已经尝试了在 SO 和其他网站中找到的所有答案 但没有运气 这就是我迄今为止尝试过的 adding compile fileTree dir lib include jar 到我的 build gradle adding
  • 使用自定义比较器在 Java 中创建 SortedMap

    我想创建一个TreeMap在 Java 中具有自定义排序顺序 排序后的键是字符串 需要根据第二个字符进行排序 这些值也是字符串 示例地图 Za FOO Ab Bar 您可以像这样使用自定义比较器 Comparator
  • Jackson 反序列化相当于 @JsonUnwrapped 吗?

    假设我有以下课程 public class Parent public int age JsonUnwrapped public Name name 生成 JSON age 18 first Joey last Sixpack 我如何将其反

随机推荐

  • Visual studio 2015 Logitec Setpoint 软件按键与鼠标按钮

    I ve just installed the Setpoint logitech software on a new PC with windows server 2012 I ve assigned to one of the butt
  • 是否有用于生成 .ico 文件的 Python 库? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找创造favicon ico从 Python 以编程方式读取文件 但 PIP 仅支持读取ico
  • 在 VS Code 中禁用斜体语法突出显示

    一些单词 function if else return等 会自动格式化为斜体是 VS Code 我怎样才能禁用这种行为 您可以使用以下用户配置强制 VS 禁用主题的所有斜体 editor tokenColorCustomizations
  • 当两个用户/朋友彼此靠近时发出警报 - Android Proximity

    我尝试搜索但找不到任何东西 我的问题是 如果 2 个或更多用户彼此靠近 我如何提醒他们 在android中使用地理围栏或其他东西 假设 如果用户 A 在足球场中 而用户 B 在该足球场附近行走 然后 UserA 和 UserB 自动收到 U
  • 使用自定义 IP 从 Docker 注册到 Eureka

    我在 Docker VM 中运行 Spring Cloud Eureka 我有注册到它的服务 但它们使用 Docker VM 内部的 IP 地址 但为了能够正确使用它们 我需要它们使用我可以从 VM 外部访问的 IP 地址 例如 在我的虚拟
  • SQLite3 导入 CSV 并排除/跳过标头

    我正在尝试将我的数据文件 其中有十几个左右 放入 SQLite 中的表中 每个文件都有一个标题 我将在未来的一年中多次收到它们 所以我想 当我收到文件时 避免编辑每个文件以删除标头 避免依靠 shell 脚本或 Python 来执行此操作
  • Outlook Javascript API - window.open 无法在 Outlook 2016 桌面/Windows 上运行

    我有一个用新的 JavaScript API 编写的 Office 加载项 其中有一个 JS 函数 经过一些逻辑后 该函数在新窗口中打开一个 Web 应用程序window open url blank 当从 Outlook Web 中的加载
  • 我可以设置 Javascript 对象的类型吗?

    我正在尝试遵循 Doug Crawford 的 超级构造函数 模式 使用 Javascript 的一些更高级的 OO 功能 但是 我不知道如何使用 Javascript 的本机类型系统设置和获取对象的类型 我现在的情况是这样的 functi
  • CSS:如何摆脱默认窗口“填充”?设置为 100% 宽度的元素不会到达窗口边框

    所以我有一个直接放置在 body 内部的元素 div Some stuff div Other stuff 以下是使用的CSS body text align center header margin auto 因此 header div
  • 使用 Jeff Atwood 的示例清理 HTML

    我正在使用 Jeff Atwood 发现的代码清理我的 Htmlhere http refactormycode com codes 333 sanitize html 但我遇到的问题是当我将 Markdown 链接输入表单时 它们被删除
  • 使用java.util.logging登录控制台

    我只想使用 java util Logging 登录控制台 Logger log Logger getLogger my logger log setLevel Level ALL ConsoleHandler handler new Co
  • 从另一个 docker 容器连接到 Mongodb docker 容器

    我正在尝试从运行我的节点js代码的另一个docker容器连接在docker容器中运行的mongo DB 所以我使用以下命令运行 MongoDB docker docker run name my local mongo v mongo da
  • 从数据库下载exe文件

    我已经将一些 exe 文件上传到数据库中 因为我不希望它们可供公开访问 我尝试使用链接按钮和通用处理程序来使用以下代码提供文件 Context Response Clear Context Response ContentType appl
  • 请求 ruby​​-on-rails 应用程序会出现 Psych::BadAlias 错误

    我从应用程序目录运行 Rails 服务器 但是当我尝试从浏览器发出请求时 http localhost 3000 我收到以下错误 Psych BadAlias 无法加载Rails application database configura
  • WebRTC 连接在本地网络之外无法工作

    我们对 webrtc 双向视频和音频流进行了以下设置 Mobile Android应用程序使用谷歌网络RTC https webrtc org 实现java包装器 测试了这两个库 implementation org webrtc goog
  • Pandas 将字典列表分解为行

    拥有这个 items name 0 a 2 b 1 a 4 b 3 this 1 a 2 b 1 a 4 b 3 that 但希望将字典对象列表分解为 展平 为实际行 如下所示 a b name 0 2 1 this 1 4 3 this
  • Angular 2 Promise/Observable 链两个事件?

    我想知道是否可观察到的 or promise可用于 Angular 2 中的以下用例 有两个异步上传任务 我想知道如何检测这两项任务都已完成 我的上传任务 实现于promise但它很容易改变为可观察到的如果需要的话 是这样的 myServi
  • 在 macOS 中通过命令行与 Siri 交互

    我在手机和手表上使用 Siri 随时随地创建提醒 当我在办公室时 我不想使用 Siri 打扰安静 因此我通常使用与 提醒 应用程序集成的 Alfred 工作流程 或者直接使用 提醒 应用程序 然而 两者都有一个相当笨拙的界面 如果我可以在命
  • Zbar SDK - 缺少所需的架构 x86_64

    我在最近的 Xcode 5 1 中构建应用程序时遇到了一个问题 编译失败 并出现 架构 x86 64 的未定义符号 错误 我使用有效架构构建我的项目 armv7 armv7s 和 arm64 切换到最新的环境 Xcode 后 我在相同的架构
  • 随机化一个 BigInteger

    I m looking to randomize a BigInteger The intent is to pick a number from 1 to 8180385048 Though from what I noticed the