-
Notifications
You must be signed in to change notification settings - Fork 173
Closed
Labels
Description
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 に実装するにあたり減算式に変更していますが,原理的には同じものでしょう。ただし,リオーダーアルゴリズムとは別物だと思いますから,この一文は削除したほうが適切ではないかと思います。