C/C++中的随机数的获得

一、头文件

C/C++产生随机数,为了使随机数更加准确,这边使用的是srand和rand的配合使用

产生随机数的头文件:#include <time.h>

二、产生100以内的随机数

//这个产生的是100以内的随机数
    srand((int)time(NULL));
    int b = rand() % 100;
    cout << "b =" << b << endl;

三、产生-50~49之间的随机数

 //这个产生的是-50~49之间的随机数
    srand((int)time(NULL));
    int a = rand() % 100 - 50;
    cout << "a =" << a << endl;

四、产生多个随机数

  //产生多个随机数,这边是5个随机数,范围是-50到-49之间的数
     srand((int)time(NULL));
     for (int i = 0; i < 5;i++)
     {
     int a = rand() % 100 - 50;
     cout << "a =" << a << endl;
     }

五、总结一般特点:

一般特点:rand() % (b-a+1)+ a ; 就表示 a~b 之间的一个随机整数

 //一般特点:rand() % (b-a+1)+ a ; 就表示 a~b 之间的一个随机整数
     //这边表示的依然是-50~49之间的随机数
      srand((int)time(NULL));
      for (int j = 0; j < 50;j++)
      {
          int i = rand() % (49 - (-50) + 1) - 50;
          cout << "i = " << i << endl;
      }

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C生成泊松分布的随机数有多种方法。一种常见的方法是使用rand()函数结合泊松分布的公式进行计算。首先,我们需要设置rand()的随机数种子,可以使用srand()函数并传入不同的种子值来获不同的随机数序列。然后,我们可以使用rand()函数生成一个0到RAND_MAX(一般为32767)之间的随机数,并将其归一化为0到1之间的小数。接下来,我们可以使用泊松分布的公式来计算泊松分布的随机数。该公式如下: P(X=k) = (e^-λ * λ^k) / k! 其,λ是泊松分布的参数,k是要生成的随机数的值,e是自然常数。通过循环生成多个随机数,就可以得到符合泊松分布的随机数序列。 还有一种方法是使用random_device类来生成泊松分布的随机数。random_device是标准库提供的一个非确定性随机数生成设备,不需要设置种子。我们可以使用random_device的operator()函数来生成随机数。然后,我们可以使用泊松分布的概率质量函数来计算泊松分布的随机数。这种方法相对于使用rand()函数更加方便,不需要设置随机数种子。 下面是一个使用rand()函数生成泊松分布随机数的示例代码: ``` #include <iostream> #include <ctime> int main() { srand(time(nullptr)); int lambda = 5; // 泊松分布的参数 for (int i = 0; i < 10; ++i) { double u = static_cast<double>(rand()) / RAND_MAX; // 生成0到1之间的随机数 int k = 0; double p = exp(-lambda); while (u >= p) { u -= p; k++; p *= lambda / k; } std::cout << k << std::endl; } return 0; } ``` 注意,这个示例代码,我们生成了10个符合参数为5的泊松分布的随机数。 另外,如果你使用的是C++11或更高版本,可以使用<random>头文件的poisson_distribution类和random_device类来生成泊松分布的随机数。这种方法更加简洁和高效。你可以定义一个poisson_distribution对象,将泊松分布的参数传递给它,然后使用random_device类生成随机数引擎,并将其传递给poisson_distribution对象进行随机数生成。 希望以上内容对你有帮助!如果你还有其他问题,请随时提问。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [C++随机数生成](https://blog.csdn.net/CFH1021/article/details/121471117)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值