【问题标题】:programming language independent random number generator与编程语言无关的随机数生成器
【发布时间】:2012-03-18 19:53:18
【问题描述】:

是否存在独立于编程平台/语言的随机数生成器? 给定种子的一系列库将返回完全相同的(显然是伪)随机数序列,并且存在于最常用的编程语言/平台(至少 C、JMV、CLI、php、python)并保证平台兼容性(win/linux/mac/android)

我知道我可以自己实现一个众所周知的算法,但我们都知道编写一个随机数生成。是困难的,所以一个防弹的实现可能是一件好事。

【问题讨论】:

  • 你能提供一个独立于语言的随机数生成器的原因吗?我很难理解您的用例。
  • 我正在考虑创建一个协议来在线玩纸牌游戏。由于它是一个协议,它应该是平台不可知论者和编程语言不可知论者。它的范围将非常广泛(不仅允许扑克,还允许CCG),因此密码学和强大的随机生成器是必须的。这个想法是两个客户端都实例化一个种子来让游戏中的随机事件发生,但是当游戏结束时,必须与其他方共享他们的本地种子,看看他们是否cheaded。
  • @Wishper:你将如何防止人们对他们的本地种子撒谎?
  • @Marcin 该协议的研究方式使得暴力破解种子非常困难,以便“让掷骰子得到想要的结果”但是我会在问更多问题之前研究心理扑克
  • @Wishper:我不是随机数生成方面的专家,但请考虑在每次“抛出”时使用蛮力以外的方法更新种子是否可行。

标签: language-agnostic random cross-platform


【解决方案1】:

获取你喜欢的 C 库。使用任何其他语言的 FFI 工具来访问它。任务完成。

更新:如果您尝试设计一个分布式扑克系统,一个相同的库将无法完成工作。相反,请阅读有关心理扑克的深入研究领域:http://www.google.co.uk/?q=mental+poker

【讨论】:

  • 不是 StackOverflow 的专家:我不知道我是否应该 +1 你的答案,因为它不满足我的问题(我想要一个“纯”实现,我也不确定任何 C lib 在不同架构中的行为是否相同)但您解决了我的问题(即重新发明轮子,因为我无法发现解决我的问题的“心理扑克”概念:) 问题已解决,无法投票因为名气不够。 :(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-19
  • 2011-09-21
  • 2011-04-02
相关资源
最近更新 更多