C++生成n个指定1到 n 不同的随机数

C++生成n个指定1到 n 不同的随机数


最近在课堂上被C++生成随机数的问题搞得头大,想不出结果去网上看别人写的,发现别人的代码,多还乱不利于理解,于是耐下性子研究别人的代码

写出来生成随机数的问题了!

 最后发现:唉,太简单的问题被我复杂化了,悲哀!

//生成1到n的不相同的随机数,可以是任意数字,这里以10为例


#include <iostream>
#include <cstdlib>
using namespace std;


int main()
{
    int n=10;   //可以设置n的值
  int a[n];
  int t;
  for(int i=0;i<n;i++)
{
    t=rand()%n+1;
    a[i]=t;   //赋值
  for(int j=0; j<i;j++)
   {   //循环判断
    if(a[j]==t)
    {
     i--;    //如果相等 把i减1,跳出循环
     break;
    }
   }
}
for(int i=0;i<n;i++)
 {  //  打印输出结果
     cout<<a[i]<<endl;
 }
}


文章来源:http://blog.csdn.net/u014368040/article/details/51460839


生成n个随机数,每个数都小于1000,你可以使用C++标准库中的`<random>`头文件。这里有一个简单的示例程序,它会生成指定数量的随机整数: ```cpp #include <iostream> #include <vector> #include <random> int main() { // 设定随机数的数量 int n = 50; // 可以根据需要修改为小于100的值 // 创建一个随机数生成器 std::default_random_engine generator(std::chrono::system_clock::now().time_since_epoch().count()); // 定义随机数范围 (0, 999) std::uniform_int_distribution<int> distribution(0, 999); // 创建一个存储随机数的vector std::vector<int> random_numbers(n); // 生成并填充随机数 for (size_t i = 0; i < n; ++i) { random_numbers[i] = distribution(generator); } // 输出随机数 for (const auto& num : random_numbers) { std::cout << num << " "; } std::cout << std::endl; return 0; } ``` 在这个例子中,我们首先创建了一个`std::default_random_engine`,它基于当前时间来初始化随机数序列的种子,确保每次运行程序时都会得到不同随机数。然后定义了`std::uniform_int_distribution`,这个分布函数用于生成0到999之间的均匀随机整数。 接着,我们创建了一个大小为n的`std::vector`来存储这些随机数,并用循环生成随机数并将其添加到vector中。最后,遍历vector并输出所有生成随机数。 如果你希望用户自己输入n的值,可以稍作修改,获取用户输入后动态调整n。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值