`
lobin
  • 浏览: 427316 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JVM中一种random实现

 
阅读更多

 

 

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.

0
1
分享到:
评论

相关推荐

    揭秘Java虚拟机-JVM设计原理与实现

    《揭秘Java虚拟机-JVM设计原理与实现》这本书深入探讨了Java虚拟机(JVM)的工作原理及其在Java编程中的核心地位。Java虚拟机是Java平台的核心组成部分,它负责执行字节码,为开发者提供了跨平台的运行环境。以下是...

    jvmjava,java实现的JVM。.zip

    开源项目“jvmjava”为开发者提供了一种学习JVM内部运作方式的途径。通过阅读和分析源代码,我们可以了解JVM的各个组件,如类加载器、运行时数据区、字节码解释器、垃圾收集器等。这不仅有助于提升Java编程技能,还...

    揭秘Java虚拟机 JVM设计原理与实现

    从源码角度解读HotSpot的内部实现机制,本书主要包含三大部分——JVM数据结构设计与实现、执行引擎机制及内存分配模型

    java虚拟机 JVM设计原理与实现

    本资料主要是讲解了Java虚拟机的机制,jvm设计原理与实现

    揭秘Java虚拟机_JVM设计原理与实现.part2

    需要两部分一起解压才可以: 当前为第二部分。 第一部分地址如下: https://download.csdn.net/download/dcxy0/10374640 也可以通过下面的地址找另外第一部分的文件:https://download.csdn.net/user/dcxy0/uploads

    JAVA核心面试知识整理.docx

    JVM内存区域是JVM中一个非常重要的概念。 JVM内存区域可以分为五个部分:程序计数器、虚拟机栈、本地方法区、堆和方法区/永久代。 程序计数器 程序计数器是一个私有的内存空间,用于存储当前线程执行到的字节码...

    mini-jvm使用 Java 8 实现 jvm

    《迷你Java虚拟机(Mini-JVM):基于Java 8的实现详解》 在计算机科学领域,Java虚拟机(JVM)是Java平台的核心组成部分,它负责执行Java字节码,使得Java应用程序可以在任何支持JVM的平台上运行,实现“一次编写,...

    JVM.rar_jvm_jvm 实现

    本项目涉及的是一个简单的JVM实现,主要关注其基本的指令执行机制,包括入栈、出栈操作以及基本的加减运算和跳转功能。 首先,我们需要理解JVM的工作原理。JVM的主要组成部分包括类加载器、运行时数据区、执行引擎...

    JVM Hotspot实现源码

    《OpenJDK中的JVM Hotspot实现源码解析》 在Java世界中,JVM(Java Virtual Machine)是运行Java程序的关键组件,它负责将字节码解释执行或即时编译为机器码,使得Java具备跨平台的能力。Hotspot是Oracle JDK和...

    推荐一些JVM原理,JVM调优,JVM内存模型,JAVA并发 电子书1

    HotSpot是JVM的一种实现,是Java虚拟机历史上最重要的技术之一。 JIT编译是JVM中的一个关键特性,它通过即时编译技术将Java字节码动态编译成本地代码,提高程序的执行速度。这个过程包括解释执行和JIT编译,解释...

    mini-jvm in rust实现jvm,jvm-rs-main.zip

    《深入浅出:Rust语言实现Mini-JVM》 在当今的编程世界中,Java虚拟机(JVM)因其高效、跨平台的特性而被广泛使用。然而,JVM的内部工作原理对于许多开发者来说仍然是一个神秘的概念。本文将探讨一个特殊的项目——...

    jdk,jvm源码

    在研究JVM源码时,可以参考OpenJDK项目,它是JDK的开源实现,提供了完整的JVM源代码。通过阅读源码,我们可以学习到更多关于类加载、内存管理、线程调度等底层细节,并且能够针对具体问题进行定制化开发。 个人网站...

    JVM线程状态和Thread.sleep的实现原理探究.pdf

    操作系统线程在JVM中有以下几种状态: 1. ALLOCATED - 内存已被分配,但未初始化。 2. INITIALIZED - 线程已被初始化,但尚未启动。 3. RUNNABLE - 线程已被启动并处于可运行状态,但并不意味着正在运行。 4. ...

    NeatJVM,java中的jvm实现.zip

    《深入解析NeatJVM:Java中的JVM实现》 在Java编程领域,JVM(Java虚拟机)是每一个开发者必须了解的关键组成部分。NeatJVM是一个开源项目,旨在为开发者提供一个清晰、简洁的Java虚拟机实现,帮助我们更好地理解和...

    07JVM是如何实现反射的?1

    JVM 反射机制的实现和优化 Java 反射机制是 Java 语言中一个相当重要的特性,它允许正在运行的 Java 程序观测、甚至是修改程序的动态行为。Java 反射机制广泛应用于 IDE、调试器、Web 开发框架等领域。 反射机制的...

    Java运行原理与Java虚拟机.pdf

    Java虚拟机(JVM)是实现Java程序跨平台运行的关键。它由多个组件组成,每个组件都有特定的功能: 1. **类装载器(Class Loader)**:负责加载程序运行所需的所有类。当程序请求加载一个类时,类装载器会查找并加载相应...

    jvm 详细介绍,了解jvm各个组成部分和功能

    不同于 C/C++ 这类需要针对不同平台进行编译的语言,Java 采用了一种更为灵活的方式:将 Java 源代码编译为字节码(Bytecode),这种字节码可以在任何安装了 JVM(Java 虚拟机)的平台上运行。这种方式确保了 Java ...

    Android代码-终端实现的 JVM 监视器。

    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: ...

    jvm 启动过程 JVM 原理

    Java虚拟机(JVM)是Java程序运行的基础,它是一个抽象的计算机系统,负责执行Java字节码。本文将深入探讨JVM的启动过程...通过深入研究JVM,开发者可以更好地解决内存溢出、性能瓶颈等问题,实现更高效的Java应用。

    JVM必知必会

    - **一种实现**:例如HotSpot、J9、JRockit,它们都是Java虚拟机规范的具体实现,但实现细节可以不同。 - **一个运行中的实例**:指的是特定JVM实现的某次运行实例。 - **技术兼容**:输入为符合规范的Class文件,...

Global site tag (gtag.js) - Google Analytics