我试图理解这段代码,我不确定它是什么语言.它似乎是
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来获得随机数.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。