加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 未知语言随机码生成器

发布时间:2020-12-15 19:56:26 所属栏目:百科 来源:网络整理
导读:我试图理解这段代码,我不确定它是什么语言.它似乎是 Java但我不确定.如果我发布错误,我会道歉.我正在做志愿者并帮助完成日历,并试图找到一个随机生成器来处理基本的.我立即试图了解这是做什么的. private static uint GetUint() { m_z = 36969 * (m_z 65535)
我试图理解这段代码,我不确定它是什么语言.它似乎是 Java但我不确定.如果我发布错误,我会道歉.我正在做志愿者并帮助完成日历,并试图找到一个随机生成器来处理基本的.我立即试图了解这是做什么的.

private static uint GetUint()
  {
   m_z = 36969 * (m_z & 65535) + (m_z >> 16);
   m_w = 18000 * (m_w & 65535) + (m_w >> 16);
   return (m_z << 16) + m_w;
  }


public static double GetUniform()
 {
  // 0 <= u < 2^32
  uint u = GetUint();
  // The magic number below is 1/(2^32 + 2).
  // The result is strictly between 0 and 1.
  return (u + 1.0) * 2.328306435454494e-10;
 }

解决方法

这似乎是在C#中实现的双重LCG(我说C#而不是Java,因为IIRC Java没有uint).您可以找到有关LCG on Wikipedia的更多信息.

尽管如此,BASIC的大多数方言都内置了一些随机数发生器,通常使用指令RANDOMIZE进行初始化,使用RAND或RANDOM来获得随机数.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读