我正在尝试理解这段代码,我不确定它是什么语言。它似乎是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;
}
答案 0 :(得分:8)
是C#,代码来自http://www.codeproject.com/KB/recipes/SimpleRNG.aspx?display=Print
用于生成随机数。在上面的链接上有相当多的信息。为了找到它我用Google搜索2.38 ...数字,因为它看起来很熟悉。
答案 1 :(得分:7)
应该是C#。
public
和private
后面必须跟:
。uint
。答案 2 :(得分:4)
这似乎是在C#中实现的双重LCG(我说C#而不是Java,因为IIRC Java没有uint
)。您可以找到有关LCG on Wikipedia的更多信息。
尽管如此,BASIC的大多数方言都内置了一些随机数生成器,通常使用说明RANDOMIZE
进行初始化,RAND
或RANDOM
获取随机数。
答案 3 :(得分:2)
由于命名约定(以大写字母开头的方法),数据类型(uint,double),关键字(私有,公共,静态),编程约定(单独行中的大括号)和运算符(&gt; &gt;,+,*,&amp;)我很确定上面代码片段中使用的编程语言是C#。