用大气噪声生成Java中的随机数

本文介绍了如何在Java中使用random.org服务,基于大气噪声生成真正的随机数。通过创建AtmosphericRandom类,利用HttpComponents API和JSON RPC 2.0 API,实现了nextInt()方法来获取定制范围内的随机整数。尽管这种方法效率不高,但提供了从自然现象获取随机性的独特方式。
摘要由CSDN通过智能技术生成

在Java中生成随机数时,我们有几个选择。但是,我怀疑在这篇文章中你会学到什么有趣或随意。所以,如果您对如何使用地球的大气噪声在Java中生成真正的随机数感兴趣,请继续阅读…

(想自学习编程的小伙伴请搜索圈T社区,更多行业相关资讯更有行业相关免费视频教程等待你来学习。完全免费哦! )

Java随机数| 大气噪音

在阅读了很多关于多年来在Java中生成随机数的帖子之后,我注意到大多数帖子都是在random.org上删除对在线服务的引用,最后通过大气噪​​声产生随机性!

我常常用“嗯,很酷”刷掉它,直到有一天我再次阅读它并认为…创建一个真正试图这样做的Java类不是很好吗?所以我做了!这催生了AtmosphericRandom Java类。

首先,random.org真棒!该网站用于彩票绘图和在线游戏,以及其他用例。该站点允许您根据大气噪声生成随机值。你问的大气噪音是多少?它是由自然大气过程引起的无线电噪声,主要是雷暴中的闪电放电。

换句话说,这种完全不可预测的自然现象可以被测量并用于推导随机值 - 这对我们有好处!random.org网站允许您生成以下随机值:

  • 整数(这篇文章涵盖的内容 - 通过 nextInt 方法,内部调用 generateIntegers random.org
  • 整数序列
  • 小数分数
  • 字符串
  • 的UUID
  • 斑点
    您可以创建一个免费的开发人员帐户,在该帐户中生成API密钥,供您用于访问基本API。我选择使用他们最新的JSON RPC 2.0 API - 抱歉,没有可用的RESTful API。

通过使用Apache的HttpComponents API 编写HTTP客户端进行JSON数据绑定并使用Spring Boot 2.0作为仙尘,我能够将概念证明放在一起以生成真正的随机整数。

如果您有兴趣查看MVP Java YouTube视频教程,请单击此处。

大气随机应用

除非您的计算机连接了特殊设备来测量大气噪声,否则您需要一个API密钥才能开始使用。我在下面的application.properties文件中包含了我的文件,但是当你读到这篇文章时它会停用它,因为我不想让你用尽我所有的免费请求!

当您注册时,您将获得自己的API密钥,因此只需在属性旁边替换您的密钥 apiKey。

图片标题

当然,我们需要声明这个Spring Boot应用程序的入口点 @SpringBootApplication,然后依赖项注入我们的起点(application.class),我们在下面看到它是通过注入的@Autowired。

图片标题

大气随机nextInt

通过类生成随机整数 AtmpsphericRandom 与使用Java的Random类似,或者 SecureRandom 在您获得对它的引用时,您需要做的就是调用该 nextInt()方法。

AtmpsphericRandom 是通过Spring Java Configuration(稍后显示)将依赖注入到下面的应用程序类的构造函数中。您可以看到AtmpsphericRandom 在startApplication() 下面的方法中使用它是多么容易 。

在这里插入图片描述

我设置默认值以生成一个基数为10的随机整数,当使用 不带参数时 ,范围为:1-1000nextInt()。您可以在下面看到JSON请求和响应,应用程序默认打印出一个随机整数。这些值在下面显示的响应“ data ”数组元素内。
在这里插入图片描述

自定义随机整数请求| nextInt

您还可以使用重载方法 nextInt( … ) 来覆盖默认值。以下 nextInt (5, 1, 2000) 是指定请求5个随机数整数,最小范围是1,最大范围是2000。

重载版本返回一个整数数组,因为这次请求了多个(5)随机整数值。

图片标题

以下是JSON请求和响应控制台输出,以应用程序打印出所请求的5个随机整数值结束。

图片标题

我将是第一个承认这不是在Java中获取随机数的最快方法,但是没有什么可以阻止你对如上所示的任意数量的随机整数进行单一请求。遗憾的是,向random.org服务发出HTTP请求会产生额外的开销,但这是从天堂获取随机整数所需要付出的代价!

这个 AtmosphericRandom 班需要一些建筑才能让它离开地面并开始运行。值得庆幸的是,通过允许我们依赖注入,Spring Java配置真的有帮助。

  • CloseableHttpClient:来自Apache HttpComponents API的Http客户端, 用于发送和接收HTTP请求/响应
  • HttpPostFactory:隐藏将Java对象映射RandomRequest 到包含在HTTP POST请求中的JSON请求所需的所有创建详细信息
  • RandomMapper:扩展Jacksons ObjectMapper 以提供来自/到JSON / Java对象的自定义映射(RandomRequest并且 RandomResponse,在本文后未显示 - 检查GitHub上的源代码)
    图片标题

一旦Spring Java为我们构建了上述三个依赖项@Configuration,它们就会用于创建 AtmosphericRandom Spring @Bean。@Bean 然后我们的应用程序 AtmosphericRandom 在其构造函数中接收 我们在演示中使用。

我通过应用程序的测试运行走这里在YouTube上。

结论

知道你可以从大气噪声中产生一个随机数,这真的很酷,对吧?!虽然这个演示只是略微允许您从random.org检索随机整数,但它可以扩展为请求API支持的其他类型。我邀请你去MVP Java的GitHub的账户这里玩弄的源代码-只是不要忘记让自己的API密钥!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值