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