首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何生成随机数?

如何生成随机数?
EN

Stack Overflow用户
提问于 2013-09-08 19:44:16
回答 4查看 774关注 0票数 2

在我的android应用程序中,我需要生成随机数,

我的应用程序将在局域网中的许多android设备上运行,并使用随机数相互通信,我想生成这样一个随机和唯一的数字,在局域网中的任何应用程序中都不应该是相同的。

它应该是独特的,每次任何用户将产生它,在他的设备和整个局域网。

如果有什么想法,我会很感激的?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-09-08 20:24:28

实际上我觉得你的要求很矛盾。有效的随机序列不会产生唯一的值,否则就不是随机的。我的意思是,你根本不需要任何随机的东西,你只需要数字是唯一的。

要生成每个网络节点的唯一编号是非常容易的,将机器、ip或mac地址与时间结合在一起是很容易的。要获得时间,只需执行System.currentTimeMillis();以获得您的ip地址,然后使用这里的示例如何在Java中获取mac地址。把这两个数字结合起来就能买到独一无二的东西。

票数 1
EN

Stack Overflow用户

发布于 2013-09-08 20:02:03

考虑到问题注释中的说明,下面是我要做的工作:构建一个(确定性)方案,以32位整数交换位。你想换多少就换多少。管这叫“扰频器”。

然后通过整数计数;在每个整数上调用‘扰码器’。

由于交换方案的确定性,唯一性得到了保证,将是快速的,但并不是冷冻安全的。但是请注意,一般来说,这将具有很差的统计随机性,所以当需要均匀分布的随机数时(如Monte ),不要使用它。但我觉得应该能满足你的要求。

票数 2
EN

Stack Overflow用户

发布于 2013-09-08 20:40:37

我对Android不熟悉。但是,您的问题似乎是由UUID或通用唯一标识符解决的。一个快速的谷歌产生此页

特别是,您正在寻找方法randomUUID(),它生成一个变体2,version 4(随机生成的编号) UUID,如RFC 4122所示。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18687921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档