long _rand_seed = 1;
void init_random(long initval) { _rand_seed = initval; }
long random() { /* standard, well-known linear congruential random generator with * next_rand = (16807*seed) mod (2**31-1) * see * (1) "Random Number Generators: Good Ones Are Hard to Find", * S.K. Park and K.W. Miller, Communications of the ACM 31:10 (Oct 1988), * (2) "Two Fast Implementations of the 'Minimal Standard' Random * Number Generator", David G. Carta, Comm. ACM 33, 1 (Jan 1990), pp. 87-88. */ const long a = 16807; const unsigned long m = 2147483647; const long q = m / a; assert(q == 127773, "weird math"); const long r = m % a; assert(r == 2836, "weird math"); // compute az=2^31p+q unsigned long lo = a * (long)(_rand_seed & 0xFFFF); unsigned long hi = a * (long)((unsigned long)_rand_seed >> 16); lo += (hi & 0x7FFF) << 16; // if q overflowed, ignore the overflow and increment q if (lo > m) { lo &= m; ++lo; } lo += hi >> 15; // if (p+q) overflowed, ignore the overflow and increment (p+q) if (lo > m) { lo &= m; ++lo; } return (_rand_seed = lo); }
1、"Random Number Generators: Good Ones Are Hard to Find", S.K. Park and K.W. Miller, Communications of the ACM 31:10 (Oct 1988)
2、"Two Fast Implementations of the 'Minimal Standard' Random Number Generator", David G. Carta, Comm. ACM 33, 1 (Jan 1990), pp. 87-88.
相关推荐
《揭秘Java虚拟机-JVM设计原理与实现》这本书深入探讨了Java虚拟机(JVM)的工作原理及其在Java编程中的核心地位。Java虚拟机是Java平台的核心组成部分,它负责执行字节码,为开发者提供了跨平台的运行环境。以下是...
开源项目“jvmjava”为开发者提供了一种学习JVM内部运作方式的途径。通过阅读和分析源代码,我们可以了解JVM的各个组件,如类加载器、运行时数据区、字节码解释器、垃圾收集器等。这不仅有助于提升Java编程技能,还...
从源码角度解读HotSpot的内部实现机制,本书主要包含三大部分——JVM数据结构设计与实现、执行引擎机制及内存分配模型
本资料主要是讲解了Java虚拟机的机制,jvm设计原理与实现
需要两部分一起解压才可以: 当前为第二部分。 第一部分地址如下: https://download.csdn.net/download/dcxy0/10374640 也可以通过下面的地址找另外第一部分的文件:https://download.csdn.net/user/dcxy0/uploads
JVM内存区域是JVM中一个非常重要的概念。 JVM内存区域可以分为五个部分:程序计数器、虚拟机栈、本地方法区、堆和方法区/永久代。 程序计数器 程序计数器是一个私有的内存空间,用于存储当前线程执行到的字节码...
《迷你Java虚拟机(Mini-JVM):基于Java 8的实现详解》 在计算机科学领域,Java虚拟机(JVM)是Java平台的核心组成部分,它负责执行Java字节码,使得Java应用程序可以在任何支持JVM的平台上运行,实现“一次编写,...
本项目涉及的是一个简单的JVM实现,主要关注其基本的指令执行机制,包括入栈、出栈操作以及基本的加减运算和跳转功能。 首先,我们需要理解JVM的工作原理。JVM的主要组成部分包括类加载器、运行时数据区、执行引擎...
《OpenJDK中的JVM Hotspot实现源码解析》 在Java世界中,JVM(Java Virtual Machine)是运行Java程序的关键组件,它负责将字节码解释执行或即时编译为机器码,使得Java具备跨平台的能力。Hotspot是Oracle JDK和...
HotSpot是JVM的一种实现,是Java虚拟机历史上最重要的技术之一。 JIT编译是JVM中的一个关键特性,它通过即时编译技术将Java字节码动态编译成本地代码,提高程序的执行速度。这个过程包括解释执行和JIT编译,解释...
《深入浅出:Rust语言实现Mini-JVM》 在当今的编程世界中,Java虚拟机(JVM)因其高效、跨平台的特性而被广泛使用。然而,JVM的内部工作原理对于许多开发者来说仍然是一个神秘的概念。本文将探讨一个特殊的项目——...
在研究JVM源码时,可以参考OpenJDK项目,它是JDK的开源实现,提供了完整的JVM源代码。通过阅读源码,我们可以学习到更多关于类加载、内存管理、线程调度等底层细节,并且能够针对具体问题进行定制化开发。 个人网站...
操作系统线程在JVM中有以下几种状态: 1. ALLOCATED - 内存已被分配,但未初始化。 2. INITIALIZED - 线程已被初始化,但尚未启动。 3. RUNNABLE - 线程已被启动并处于可运行状态,但并不意味着正在运行。 4. ...
《深入解析NeatJVM:Java中的JVM实现》 在Java编程领域,JVM(Java虚拟机)是每一个开发者必须了解的关键组成部分。NeatJVM是一个开源项目,旨在为开发者提供一个清晰、简洁的Java虚拟机实现,帮助我们更好地理解和...
JVM 反射机制的实现和优化 Java 反射机制是 Java 语言中一个相当重要的特性,它允许正在运行的 Java 程序观测、甚至是修改程序的动态行为。Java 反射机制广泛应用于 IDE、调试器、Web 开发框架等领域。 反射机制的...
Java虚拟机(JVM)是实现Java程序跨平台运行的关键。它由多个组件组成,每个组件都有特定的功能: 1. **类装载器(Class Loader)**:负责加载程序运行所需的所有类。当程序请求加载一个类时,类装载器会查找并加载相应...
不同于 C/C++ 这类需要针对不同平台进行编译的语言,Java 采用了一种更为灵活的方式:将 Java 源代码编译为字节码(Bytecode),这种字节码可以在任何安装了 JVM(Java 虚拟机)的平台上运行。这种方式确保了 Java ...
jvm-mon Console based JVM monitoring - when you just want to SSH into a server and see what's going on. jvm-top lets you monitor your JVM server applications from the terminal. Install Requirement: ...
Java虚拟机(JVM)是Java程序运行的基础,它是一个抽象的计算机系统,负责执行Java字节码。本文将深入探讨JVM的启动过程...通过深入研究JVM,开发者可以更好地解决内存溢出、性能瓶颈等问题,实现更高效的Java应用。
- **一种实现**:例如HotSpot、J9、JRockit,它们都是Java虚拟机规范的具体实现,但实现细节可以不同。 - **一个运行中的实例**:指的是特定JVM实现的某次运行实例。 - **技术兼容**:输入为符合规范的Class文件,...