哪些种子用于通用语言中的本机随机数生成器?

Posted

技术标签:

【中文标题】哪些种子用于通用语言中的本机随机数生成器?【英文标题】:Which seeds are used for native random number generators in common languages? 【发布时间】:2015-11-24 20:57:21 【问题描述】:

我有兴趣找出哪些种子用于通用语言中的本机随机数生成器。主要是 javascript、Objective C、Swift 和 Java。

如果您想在分布式系统中生成唯一的 ID,您希望将冲突风险降至最低。一种策略是使用与随机数连接的 UNIX 时间戳。但是,如果 UNIX 时间戳也用作随机数生成器的唯一种子,则将随机数添加到时间戳是没有意义的。如果两个单元同时使用相同的伪随机生成器计算一个 id,那么它们也会返回相同的随机数。我认为,使用特定于硬件的 id 作为种子的一部分将是一个很好的策略。但它是如何在这些语言中实际实现的呢?

【问题讨论】:

android”不是一种语言。你是说 Android Java 吗? 【参考方案1】:

这是一个平台/框架问题,而不是语言问题。

我建议在所有平台上生成 UUID。 UUID 被设计成完全独特的。 ios/Mac OS 有 NSUUID。其他平台我不知道。

【讨论】:

以上是关于哪些种子用于通用语言中的本机随机数生成器?的主要内容,如果未能解决你的问题,请参考以下文章

kbmMW基于硬件生成随机数

java怎么获得以当前时间为种子的随机数?

算法1---随机生成算法

C语言 rand()伪随机数函数怎么生成随机数种子?(srand(time))(生成[m, n]范围内随机数方法)

Random类

R语言颜色-图例legend及位置调整