0

我正在尝试解决 B. Stoustrup 的书“编程——使用 C++ 的原理和实践”第 8 章中的练习 8 和 9。

练习 8 涉及编写一个名为的函数,该函数randint()在 range 中生成一个随机整数[0;MAXINT]。MAXINT 应该是什么?是否有可能存储在 int 中的数量更多?它是函数的参数吗?作者没有说明。给出的唯一提示是:“ The Art of Programming , Knuth, vol. 2”。那本书描述了一种称为线性同余方法的算法,它涉及 4 个参数(请参阅链接的 Wikipedia 文章)。

练习 9 涉及使用randint(int a, int b)练习 8 中的函数生成范围内的随机整数[a;b]

现在我可以用 4 个参数编写一个实现线性同余方法的函数,但这不是作者想要的。我试图了解他想要什么,并想知道是否有人解决了这些练习。不幸的是,作者的网站上没有这些练习的解决方案。

感谢您的建议。

4

1 回答 1

2

标准 C++ 中没有称为MAXINT.

有一个宏INT_MAX,定义在<climits><limits.h>C)中;它扩展为一个常量表达式,其值为 type 的最大值intint例如,如果是 32 位,INT_MAX则可能是2147483647.

要么MAXINT在本书的其他地方进行了描述(检查索引和/或练习前的几页),要么这是一个错误,Stroustrup 打算参考INT_MAX.

如果您找不到它MAXINT的定义位置,您可能只需替换INT_MAX.

于 2012-08-03T21:12:43.997 回答