Marsaglia XORshift随机数算法「建议收藏」

Marsaglia XORshift随机数算法「建议收藏」引理:二进制矩阵相乘中加法为异或。给定非空向量beta和n阶矩阵T,序列beta*T,beta*T^2,beta*T^3,…的秩为2^n-1的充要条件是矩阵T为非奇异矩阵.L是左移位操作,y=y^(y>b)表示为y=y*(E+R^b),令T=(E+L^a)(E+R^b),n=32或64,找不到这样的非奇异矩阵。但是令T=(E+L^a)*(E+R^b)*(E+L^c)能找

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
引理:

二进制矩阵相乘中加法为异或。

给定非空向量beta和n阶矩阵T,序列beta*T,beta*T^2,beta*T^3,…的秩为2^n-1的充要条件是矩阵T为非奇异矩阵.

L是左移位操作,y=y^(y<<a)表示为y=y*(E+L^a),y=y^(y>>b)表示为y=y*(E+R^b),令T=(E+L^a)(E+R^b),n=32或64,找不到这样的非奇异矩阵。

但是令T=(E+L^a)*(E+R^b)*(E+L^c)能找到很多。对于n=32,T=(E+L^a)*(E+R^b)*(E+R^c)有81个可选的(a,b,c)三元组。对于n=64,T=(E+L^a)*(E+R^b)*(E+L^c)有275个可选三元组。还有变种的xor128和mwc周期可以更长。

该算法相当于一个线性反馈移位寄存器,是最快的非密码安全随机数生成器(肯定比线性同余法快得多),大约只要10个时钟周期。java的IdentityHashCode就是用这个算法,不过如果要做加密或蒙特卡洛就不行了。

参考资料:

C++ 快速随机数生成器:http://blog.jobbole.com/94034/

wiki: https://en.wikipedia.org/wiki/Xorshift

XORShift RNGS: http://www.jstatsoft.org/v08/i14/paper

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/158930.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • matlab检验贝塔分布规律,贝塔分布背后的直觉:概率的概率分布

    matlab检验贝塔分布规律,贝塔分布背后的直觉:概率的概率分布编者按 贝塔分布的定义很简单 具有两个参数 gt 0 的一组定义在 0 1 区间的连续概率分布 但是 它背后的直觉却不是那么明显 StackOverflo 数据科学家 DavidRobinso 在 CrossValidat 解释了贝塔分布背后的直觉 简而言之 贝塔分布代表 probabilitie 概率的复数形式 的分布 也就是说 它代表当我们不知道概率是什么时 概率的所有

    2025年8月29日
    1
  • Linux安装NVIDIA显卡驱动的正确姿势

    Linux安装NVIDIA显卡驱动的正确姿势什么是nouveau驱动?检测NVIDIA驱动是否成功安装集显与独显的切换使用标准仓库进行自动化安装使用PPA仓库进行自动化安装使用官方的NVIDIA驱动进行手动安装Linux安装NVIDIA显卡驱动的正确姿势可能想玩Linux系统的童鞋,往往死在安装NVIDIA显卡驱动上,所以这篇文章帮助大家以正常的方式安装NVI…

    2022年4月7日
    181
  • Python 学习笔记 变量 xxx XXX「建议收藏」

    Python 学习笔记 变量 xxx XXX「建议收藏」Python学习笔记变量xxxXXXname=”adalovelace”print(name.title())print(name.upper())print(name.lower())first_name=”ada”last_name=”lovelace”full_name=first_name+””+last_nameprint(full_name)print(“Hello,”+…

    2022年8月22日
    9
  • 网页w3c标准_让行为成为标准

    网页w3c标准_让行为成为标准转自:http://一杯白开水w.iteye.com/blog/1122618什么是W3C标准    作为网站技术开发人员而言,往往是站在自己的开发角度来实施网站布署(读取数据及开发的方便性等等),而不是站在网站访问者与搜索引擎角度。因此大部分的网站在浏览方面不够直观或是方便,特别是现在w3c的规范,更是在大部分的网站开发人员脑里一片空白。何况百度、google、msn、yahoo

    2022年9月15日
    3
  • 数据结构——线索化二叉树和哈夫曼树[通俗易懂]

    数据结构——线索化二叉树和哈夫曼树[通俗易懂]线索化二叉树和哈夫曼树基础知识介绍与代码分析一、基础知识介绍二、代码分析:线索二叉树(采用中序遍历)#include “pch.h”#include <iostream>using namespace std;//定义线索二叉树typedef struct Tree{ int data, LTag, RTag; //定义数据域与标记域 Tre…

    2022年8月18日
    10
  • 手机最强 Python 编程神器,在手机上运行 Python 不再是梦[通俗易懂]

    手机最强 Python 编程神器,在手机上运行 Python 不再是梦[通俗易懂]手机编程软件有很多,大部分都很难使用,操作不灵活,甚至不能安装第三方库。尝试安装了很多Python移动编程软件,发现了很多问题,不是编码效率低就是各种bug。今天,来自一位python编程小哥指导,向大家推荐两款精心挑选的手机编程软件,它们也是非常成熟的手机编程工具。QPythonOHQpython是一个轻量级的、成熟的python编程工具。它配有终端和简单的代码编辑器。它支持安装第三方库。目前,它支持Python3.6.6,这还不算太老。代码编辑区域代码比其他手机编程软件更灵活,底

    2022年8月12日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号