如何在 C++ 中生成 1 到 10 之间的随机数2024年8月28日 | 阅读 4 分钟 在许多编程应用程序中,生成随机数是一项常见的需求,C++ 提供了几种方法来生成给定范围内的随机数。在本文中,我们将探讨在 C++ 中生成 1 到 10 之间随机数的不同方法。 方法 1使用 rand() 函数 在 C++ 中生成 1 到 10 之间随机数的最简单方法之一是 **_rand()_** 函数。此函数在 **_<cstdlib>_** 头文件中定义,并在 **_0_** 到 **_RAND_MAX_** 范围内生成一个随机整数。**_RAND_MAX_** 的值取决于实现,并且可能因编译器而异。 示例 让我们举一个使用 rand() 函数生成 1 到 10 之间随机数的例子,我们可以使用以下代码 输出 Random number between 1 and 10 is: 4 5 7 10 7 5 1 7 10 2 在此代码中,我们包含了 **_<cstdlib>_** 和 **_<ctime>_** 头文件。**_srand()_** 函数用于使用当前时间作为种子初始化随机数生成器。它确保每次程序运行时都会生成一个新的随机数序列。 **_rand()_** 函数用于生成 0 到 **_RAND_MAX_** 之间的随机整数。为了将范围限制在 1 到 10 之间,我们将此数除以 10 的余数,并加 1。 方法 2使用 C++11 随机库 **_C++11_** 标准引入了一个名为 **_<random>_** 的新库,它提供了一种更好的生成随机数的方法。此库提供了多种随机数生成引擎和分布,可以生成具有均匀分布的随机数。 示例 让我们举一个使用 **_<random>_** 库生成 1 到 10 之间随机数的例子,我们可以使用以下代码 在此代码中,我们包含了 **_<random>_** 头文件。**_random_device_** 类用于为随机数生成器获取种子值。**_mt19937_** 类是一个随机数生成引擎,它生成具有均匀分布的随机数。**_uniform_int_distribution_** 类用于生成给定范围内的随机整数。 默认情况下,**_mt19937_** 引擎使用种子值 **_5489_**,可以使用 **_seed()_** 方法更改。但是,建议使用 **_random_device_** 获取种子值以获得更好的随机性。 **_uniform_int_distribution_** 类在给定范围内生成具有均匀分布的随机整数。在此代码中,我们使用构造函数将范围指定为 **_1_** 到 **_10_**。 与 **_rand()_** 函数相比,此方法提供了更好的随机性和生成的数字的均匀分布。但是,它的实现速度较慢且更复杂。 方法 3使用带 time() 的模运算符 生成 1 到 10 之间随机数的另一种方法是使用 **_模运算符_** 和当前时间作为种子值。此方法类似于使用 **_rand()_** 函数的第一种方法,但它使用更随机的种子值并提供更好的随机性。 示例 让我们举一个使用带 **_time()_** 的模运算符生成 1 到 10 之间随机数的例子,我们可以使用以下代码 输出 Random number between 1 and 10 is: 6 6 3 6 10 10 1 7 6 4 在此代码中,我们使用了 **_time()_** 函数获取当前时间作为 **_srand()_** 函数的种子值。**_srand()_** 函数用于初始化随机数生成器。**_rand()_** 函数生成 0 到 **_RAND_MAX_** 之间的随机整数,然后使用 **_模运算符_** 并加 1 将其限制在 1 到 10 之间。 结论总之,在 C++ 中生成 1 到 10 之间随机数有几种方法。方法的选择取决于应用程序的要求,例如生成数字的**_速度、随机性_**和**_均匀性_**。虽然 **_rand()_** 函数最简单且最易于实现,但它可能无法提供良好的随机性和均匀性。**_<random>_** 库提供了一种更好的生成具有均匀分布的随机数的方法,但它的实现速度较慢且更复杂。**_XORShift_** 算法提供了良好的**_随机性_**和**_均匀性_**,但它的实现更复杂,并且可能不如 **_rand()_** 函数快。 |
在 C++ 标准模板库 (STL) 的广阔领域中,<regex> 库因其强大的正则表达式功能而脱颖而出。在此库中,<smatch> 类提供了一种管理正则表达式中匹配的子表达式的机制。此类的值得注意的成员函数之一是 max_size()。理解 <smatch>...
阅读 6 分钟
本节将讨论 C++ 编程语言中变量的类型转换。类型转换是指程序中一种数据类型转换为另一种数据类型。类型转换可以通过两种方式完成:由编译器自动完成和由程序员手动完成...
阅读 8 分钟
在本文中,我们将讨论 C++ 的应用程序。C++ 编程语言非常灵活,在各个行业都有广泛的用途。一些最流行的 C++ 程序列举如下:系统软件开发:C++ 通常用于创建系统级软件,例如...
阅读 3 分钟
货币兑换是每个人都会遇到的难题。在我们的日常活动中,我们必须兑换货币。因此,如果有人想创建一个 C++ 应用程序来兑换货币,这个程序是最好的资源。如果您有编程经验,您...
阅读 3 分钟
在本文中,我们将讨论如何在 C++ 中打印给定两个字符串的所有交错排列。但在进行实现之前,我们将了解交错排列。什么是交错排列?两个字符串的交错排列是通过将两个字符串的字符以所有方式合并而成的...
阅读 3 分钟
一个简单的控制台应用程序或一个名为 C 语言吃豆人游戏的快速剪辑游戏是为了娱乐而制作的。与贪吃蛇游戏类似,吃豆人需要移动,使其沿着预定义的蓝色路径移动,然后它被吃豆人擦除或吃掉。...
阅读 23 分钟
合并重叠区间是计算科学、数学和调度、日历管理和数据分析等现实世界应用中的常见计算问题。目标是接受一组区间,每个区间代表一个值范围,然后合并...
18 分钟阅读
在 C++ 中,什么是 cstdlib?C++ 标准库头文件 () 是包含该语言最广泛使用的库之一的头文件。此头文件指定了一组方法和宏,以帮助团队和技术编写高效、高性能、标准化的 C++ 代码。C++ 是一个...
5 分钟阅读
在本文中,我们将通过几种情况讨论 C++ 中的乘法表程序。情况 1:从用户那里获取一个数字作为输入,并打印该数字的乘法表。C++ 程序:#include<iostream> using namespace std; int main(){ int number; cout<< "Enter the...
阅读 4 分钟
在本文中,我们将讨论在 C++ 中实现哈希表中的开放寻址。在实现关联数组或键值映射时,使用哈希表至关重要。这是因为它基于哈希映射;当两个不同的键具有……时会发生冲突。
阅读 10 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India