来自 Stroustrup PPP 的伪随机数生成器,使用 C++,第 8 章,练习 8 和 9
Pseudo random numbers generator from Stroustrup's PPP using C++, chapter 8, exercises 8 and 9
我试图解决B.Stoustrup的书《编程——使用C++的原理和实践》第八章中的练习8和9。
练习8涉及编写一个名为randint()
的函数,该函数生成一个范围为[0;MAXINT]
的随机整数。MAXINT应该是什么?它是存储在int中的可能的较大数字吗?它是函数的自变量吗?作者没有说明。给出的唯一提示是:"编程艺术,Knuth,第2卷"。这本书描述了一种称为线性同余法的算法,它涉及4个参数(见维基百科的链接文章)。
练习9涉及使用练习8中的randint(int a, int b)
函数来生成范围为[a;b]
的随机整数。
现在我可以编写一个实现线性同余方法的函数,有4个参数,但这不是作者想要的。我试图理解他想要什么,并想知道是否有人解决了这些问题。不幸的是,作者的网站上没有这些练习的解决方案。
谢谢你的建议。
在标准C++中没有称为MAXINT
的东西。
有一个宏INT_MAX
,在<climits>
中定义(C中的<limits.h>
);它扩展为其值是类型CCD_ 9的最大值的常数表达式。例如,如果int
是32比特,则INT_MAX
可能是2147483647
。
要么MAXINT
在书中的其他地方有描述(查看索引和/或练习前的几页),要么这是一个错误,Stroustrup指的是INT_MAX
。
如果你找不到这个MAXINT
是在哪里定义的,你可能只需要替换INT_MAX
。
相关文章:
- 加速C++练习2.4
- C++ 独特指针练习的向量
- 转换器练习:跳过 if 语句和 if 语句
- 节目练习直播C++
- 所以我正在为我的学校作业练习继承,但我无法正确实施标题保护
- 我正在尝试一个傻瓜 C++ 练习,我遇到了一个错误,说类 'GraduateStudent' 没有任何名为 'advisor' 的字段
- 练习多线程
- 返回不停止函数,递归函数问题?(编程练习,动态规划,Levenshtein 回溯)
- C++ 随机数的字符串练习
- 进行 SFINAE 练习时编译错误
- 用 X 替换字符串中的字符C++练习
- 在C++中使用全局变量进行练习
- 是回文作业练习
- C++原理和练习练习-从输入值n中寻找素数
- 我在LeetCode练习时遇到了一些奇怪的错误
- 贝金纳C++练习解决方案的意外输出
- 练习循环和使用循环 1 次以及如何获取数组的最大值
- 对"车辆的 vtable"的未定义引用 - 面向对象的编程练习
- 用绳子练习
- 英里到千克转换器练习的小语法错误