У меня есть два вопроса относительно реализации класса Random
в .NET Framework 4.6 (код доступен здесь):
-
В чем смысл установки аргумента
Seed
в1
в конце конструктора? Кажется, это скопировано из Numerical Recipes в C (2-е изд.), Где это имело какой-то смысл, но в С# оно не имеет. -
В книге (Численные рецепты в C (2-е изд.)) указано, что в поле
inextp
установлено значение31
, потому что:
Постоянная 31 является специальной; см. Кнут.
Однако в реализации .NET это поле имеет значение 21
. Зачем? Остальная часть кода, похоже, внимательно следит за кодом из книги, за исключением этой детали.