我们正在努力恢复Google Play商店上的Unionpedia应用程序
传出传入
🌟我们简化了设计以优化导航!
Instagram Facebook X LinkedIn

梅森旋转算法

指数 梅森旋转算法

梅森旋转演算法(Mersenne twister)是一个伪随机数发生算法。由松本真和西村拓士在1997年开发,基于有限二进制字段上的矩阵线性递归F_。可以快速产生高质量的伪随机数,修正了古典随机数发生算法的很多缺陷。 Mersenne Twister这个名字来自周期长度取自梅森素数的这样一个事实。这个算法通常使用两个相近的变体,不同之处在于使用了不同的梅森素数。一个更新的和更常用的是MT19937, 32位字长。还有一个变种是64位版的MT19937-64。对于一个k位的长度,Mersenne Twister会在的区间之间生成离散型均匀分布的随机数。.

目录

  1. 18 关系: 可觀測宇宙二进制伪代码離散型均勻分佈Free PascalGLibGNU多重精度运算库IDLKibibyteMapleMATLABPHPPythonRRuby梅森素数模除汇编语言

  2. 伪随机数生成器

可觀測宇宙

可观测宇宙(observable universe)是一个以观测者作为中心的球体空间,小得足以让观测者观测到该范围内的物体,也就是说物体发出的光有足够时间到达观测者。截至2013年對宇宙年齡最精確的估計是年。 但由於宇宙的膨脹,可觀測宇宙的半徑並不是固定的138億光年,人類所觀測的古老天體當前的距離比起其原先的位置要遙遠得多(以固有距離(proper distance)來衡量,固有距離在現在的時點和同移距離是相等的)。 现在推测可观测宇宙半径约为465亿光年,直径约为930亿光年。 根據宇宙學原理,從任何方向到可觀測宇宙邊緣的距離大致是相等的。 “可观测”在这个意义上与现代科技是否容许我们探测到物体发出的辐射无关,而是指物体发出的光线或其他辐射可能到达观测者。实际上,我们最远只能观测到宇宙从不透明变为透明的临界最后散射面(surface of last scattering),但在未來的技術下,我们有可能觀測到更古老的宇宙中微子背景輻射,甚至可能能够从重力波的探测推断这个时间之前的信息。有時候天體物理學家將「可視宇宙」(visible universe)和「可觀測宇宙」相區分,前者只包括了再復合時期以來的信息而後者則包括了自宇宙膨脹(傳統宇宙學的大爆炸及現代宇宙學的暴脹時期結束)以來發出的信息。經過計算,到CMBR粒子的同移距離(可視宇宙的半徑)大約為140億秒差距(約457億光年),而到可觀測宇宙邊緣的同移距離大約為143億秒差距(約466億光年),大約比前者大2%。.

查看 梅森旋转算法和可觀測宇宙

二进制

在數學和數字電路中,二進制(binary)數是指用二進制記數系統,即以2為基數的記數系統表示的數字。這一系統中,通常用兩個不同的符號0(代表零)和1(代表一)來表示。以2為基數代表系統是二進位制的。數字電子電路中,邏輯門的實現直接應用了二進制,因此現代的計算機和依赖計算機的設備裡都用到二進制。每個數字稱為一個位元(二進制位)或比特(Bit,Binary digit的縮寫)。.

查看 梅森旋转算法和二进制

伪代码

伪代码(pseudocode),又称为虚拟代码,是高层次描述算法的一种方法。它不是一种现实存在的编程语言(已经出现了类似伪代码的语言,参见Nuva);它可能综合使用多种编程语言的语法、保留字,甚至会用到自然语言。 它以编程语言的书写形式指明算法的职能。相比于程序语言(例如Java、C++、C、Delphi 等等)它更类似自然语言。它是--、不标准的语言。我们可以将整个算法运行过程的结构用接近自然语言的形式(这里可以使用任何一种作者熟悉的文字,例如中文、英文,重点是将程序的意思表达出来)描述出来。使用伪代码,可以帮助我们更好的表述算法,不用拘泥于具体的实现。 人们在用不同的编程语言实现同一个算法时意识到,他们做出来的实现(而非功能)很不同。程序员要理解一个用他并不熟悉的编程语言编写的程序,可能是很困难的,因为程序语言的形式限制了程序员对程序关键部分的理解。伪代码就这样应运而生了。 当考虑算法功能(而不是其语言实现)时,伪代码常常得到应用。计算机科学在教学中通常使用伪代码,以使得所有的程序员都能理解。.

查看 梅森旋转算法和伪代码

離散型均勻分佈

在統計學及概率理論中,離散型均匀分佈是一個離散型概率分佈,其中有限個數值擁有相同的概率。 Category:离散分布 Category:概率分布.

查看 梅森旋转算法和離散型均勻分佈

Free Pascal

Free Pascal (简称 FPC,原名为 FPK Pascal),是一个支持16位,32位和64位处理器的专业 Pascal 语言编译器,支持多种处理器架构,包括:Intel x86(也支持8086)、AMD64/x86-64、PowerPC及其64位架构、SPARC、ARM、AArch64、MIPS 以及 JVM。Free Pascal 支持多种操作系统,包括:GNU/Linux、FreeBSD、Haiku、Mac OS X/iOS/Darwin、DOS、Win32/64、WinCE、OS/2、MorphOS、Nintendo GBA、Nintendo DS、Nintendo Wii、Android、AIX and AROS,对 Motorola 68k 的支持也在开发中。 Free Pascal 是自由软件,软件包和运行时库发布在GNU宽通用公共许可证下,允许其他程序静态链接。编译器自身发布在GNU通用公共许可证下。编译器完全用 Pascal 语言写成。最新的版本为 3.0.4 。 Lazarus 项目建立在 Free Pascal 基础上,利用其作为编译器,提供了一个类似 Delphi 的快速应用开发(RAD)环境,与 Free Pascal一样支持多种平台,同样是自由软件。 現在,Free Pascal已經被選定為中國大陸全國青少年信息學奧林匹克聯賽(NOIP)以及中國大陸全國青少年信息學奧林匹克競賽(NOI)以及国际信息学奥林匹克(IOI)的指定Pascal編譯環境。.

查看 梅森旋转算法和Free Pascal

GLib

GLib是一个跨平台的、用C语言编写的五个底层库的集合,为GNOME所使用。.

查看 梅森旋转算法和GLib

GNU多重精度运算库

GNU多重精度运算库(GNU Multiple Precision Arithmetic Library,简称GMP或gmpal)是一个开源的任意精度运算库,支持正负数的整数、有理数、浮点数。它没有任何精度限制,只受限于可用内存。GMP有很多函数,它们都有一个规则的接口。它是C语言写成的,但用为其他很多语言做包装,包括Ada,C++,C#,OCaml,Perl,PHP,python 和 R。GMP主要运用于加密应用和研究、互联网安全应用、计算机代数系统和计算代数研究。GMP的目标是成为最快的大数运算库,GMP是GNU项目的一部分,它在GNU宽通用公共许可证下发表。GMP在许多计算机辅助代数系统中用于整数运算,如Mathematica和Maple。GMP需要使用GCC(GNU编译器套装)编译。.

查看 梅森旋转算法和GNU多重精度运算库

IDL

IDL可以指:.

查看 梅森旋转算法和IDL

Kibibyte

Kibibyte是一種資訊計量單位,代表1024字节,即210字节,一般簡稱為KiB。Kibibyte是來自英文 kilo binary byte 的縮寫,意思為「千位二進位字節」。.

查看 梅森旋转算法和Kibibyte

Maple

Maple是一个通用型的商用计算机代数系統。Maple起源于1988年,由加拿大安大略滑铁卢的一家公司,Waterloo Maple Inc.(亦称Maplesoft枫软)进行开发和商业销售。最新版是Maple 2018。它的主要竞争者是Mathematica。 目前共有五個版本:Personal(個人版),Professional(專業版),Academic(學術版),Government(政府版)和Student(學生版)。 2009年,枫软被日本软件商Cybernet Systems收购。.

查看 梅森旋转算法和Maple

MATLAB

MATLAB(矩阵实验室)是MATrix LABoratory的缩写,是一款由美国The MathWorks公司出品的商业数学软件。MATLAB是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。除了矩阵运算、绘制函数/数据图像等常用功能外,MATLAB还可以用来创建用户界面及与调用其它语言(包括C、C++、Java、Python和FORTRAN)编写的程序。 尽管MATLAB主要用于数值运算,但利用为数众多的附加工具箱(Toolbox)它也适合不同领域的应用,例如控制系统设计与分析、图像处理、信号处理与通讯、金融建模和分析等。另外还有一个配套软件包Simulink,提供一个可视化开发环境,常用于系统模拟、动态/嵌入式系统开发等方面。.

查看 梅森旋转算法和MATLAB

PHP

PHP(全称:PHP:Hypertext Preprocessor,即“PHP:超文本预处理器”)是一种开源的通用计算机脚本语言,尤其适用于网络开发并可嵌入HTML中使用。PHP的语法借鉴吸收C语言、Java和Perl等流行计算机语言的特点,易于一般程序员学习。PHP的主要目标是允许网络开发人员快速编写动态页面,但PHP也被用于其他很多领域。 PHP最初是由勒多夫在1995年开始开发的;現在PHP的標準由the PHP Group維護。PHP以PHP License作為許可協議,不過因為這個協議限制了PHP名稱的使用,所以和開放原始碼許可協議GPL不相容。 PHP的應用範圍相當廣泛,尤其是在網頁程式的開發上。一般來說PHP大多執行在網頁伺服器上,透過執行PHP程式碼來產生使用者瀏覽的網頁。PHP可以在多數的伺服器和作業系統上執行,而且使用PHP完全是免費的。根據2013年4月的統計資料,PHP已經被安裝在超過2億4400萬個網站和210萬台伺服器上。 PHP在windows上有专门的官方移植编译项目,并且分多个VC编译器版本和线程安全特性来提供不同的版本支持。.

查看 梅森旋转算法和PHP

Python

Python( ),是一种广泛使用的高级编程语言,属于通用型编程语言,由吉多·范罗苏姆创造,第一版发布于1991年。可以視之為一種改良(加入一些其他程式語言的優點,如物件導向)的LISP。作为一种解释型语言,Python的设计哲学强调代码的可读性和简洁的语法(尤其是使用空格缩进划分代码块,而非使用大括号或者关键词)。相比於C++或Java,Python让开发者能够用更少的代码表达想法。不管是小型还是大型程序,该语言都试图让程序的结构清晰明了。 与Scheme、Ruby、Perl、Tcl等动态类型编程语言一样,Python拥有动态类型系统和垃圾回收功能,能够自动管理内存使用,并且支持多种编程范式,包括面向对象、命令式、函数式和过程式编程。其本身拥有一个巨大而广泛的标准库。 Python 解释器本身几乎可以在所有的操作系统中运行。Python的正式直譯器CPython是用C语言编写的、是一個由社群驱动的自由软件,目前由Python软件基金会管理。.

查看 梅森旋转算法和Python

R

R,r是拉丁字母中的第18个字母。 R通常在語言中的發音屬於流音輔音,不過在歐洲,不同的語言之間存在着許多不一樣的發音方式。隨著印刷術和書寫方式的演變,曾經有一段時間R存在著一個變體叫做半r,今日,它已經隨著時間與長s一同消失在語言體系了。.

查看 梅森旋转算法和R

Ruby

Ruby 是一种面向对象、命令式、函数式、动态的通用编程语言。在20世纪90年代中期由日本電腦科學家松本行弘(Matz)设计并开发。 遵守BSD许可证和Ruby License。它的灵感与特性来自于Perl、Smalltalk、Eiffel、Ada以及Lisp语言。由Ruby语言本身还发展出了JRuby(Java平台)、IronRuby(.NET平台)等其他平台的Ruby语言替代品。.

查看 梅森旋转算法和Ruby

梅森素数

梅森数是指形如2^n - 1的数,记为M_n;如果一个梅森数是素数那么它称为梅森素数(Mersenne prime)。 梅森数是根据17世纪法国数学家马兰·梅森(Marin Mersenne)的名字命名的,他列出了n ≤ 257的梅森素数,不过他错误地包括了不是梅森素数的M67和M257,而遗漏了M61、M89和M107。 当n为合数时,M_n一定为合数。但当n为素数时,M_n不一定皆為素数,比如M_2.

查看 梅森旋转算法和梅森素数

模除

模除(又稱模数、取模運算等)是一种不具交换性的二元运算。.

查看 梅森旋转算法和模除

汇编语言

汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器,或其他可编程器件的低级语言。在不同的设备中,汇编语言对应着不同的机器语言指令集。一种汇编语言专用于某种计算机系统结构,而不像许多高级语言,可以在不同系统平台之间移植。 使用汇编语言编写的源代码,然后通过相应的汇编程序将它们转换成可执行的机器代码。这一过程被称为汇编过程。 汇编语言使用助记符(Mnemonics)来代替和表示特定低级机器语言的操作。特定的汇编目标指令集可能会包括特定的操作数。许多汇编程序可以识别代表地址和常量的标签(Label)和符号(Symbols),这样就可以用字符来代表操作数而无需采取写死的方式。普遍地说,每一种特定的汇编语言和其特定的机器语言指令集是一一对应的。 许多汇编程序为程序开发、汇编控制、辅助调试提供了额外的支持机制。有的汇编语言编寫工具经常会提供巨集,它们也被称为--汇编器。 现在汇编语言已不像其他大多數的程序設計語言一樣被廣泛用于程序設計,在今天的實際應用中,它通常被應用在底層硬件操作和高要求的程序優化的场合。驅動程序、嵌入式操作系統和實時運行程序都会需要組合語言。.

查看 梅森旋转算法和汇编语言

另见

伪随机数生成器

亦称为 Mersenne Twister,马特赛特旋转演算法。