Skip to content

std::knuth_b について #1355

@TETSURO1999

Description

@TETSURO1999

GitHub に書き込むのは初めてで不作法な点がありましたらご指摘下さい。

std::knuth_b の記述について疑問があります。

https://cpprefjp.github.io/reference/random/knuth_b.html

Donald Knuth氏の著書『The Art of Computer Programming, Second Edition, Volume 2, Seminumerical Algorithms』で考案された、リオーダーアルゴリズムBがそれだ。

実際に Knuth 先生の著書を読むと,出典として ACM Trans. Math. Software 2 (1976), 59-64 を引用しており,著者は Carter Bays, S. D. Durham の二人で Knuth 先生本人が考案したものでは無さそうですので,「考案された」ではなく「述べられている」くらいが適切ではないでしょうか?

このアルゴリズムは、Microsoft .NET FrameworkのSystem.Randomクラスにも、実装として使用されている。

.NET Framework の Random クラスは,同じ Knuth 先生の著書で述べられているアルゴリズムA(加算式乱数発生器)のほうだと思います。Microsoft はこれを .NET Framework に実装するにあたり減算式に変更していますが,原理的には同じものでしょう。ただし,リオーダーアルゴリズムとは別物だと思いますから,この一文は削除したほうが適切ではないかと思います。

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions