数学中国

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
查看: 2369|回复: 1

用C++模拟蚊子的运动来检验概率论内容

[复制链接]
发表于 2020-12-27 10:40 | 显示全部楼层 |阅读模式
本帖最后由 chanji 于 2020-12-27 11:42 编辑

背景:在一个很大的方形透明容器内,从某个位置放入适量的蚊子,等待几分钟后观察蚊子的分布。
模拟代码如下:
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <ctime>
  4. #define random(a,b) (rand() % (b-a+1))+ a
  5. using namespace std;

  6. int main()
  7. {
  8.     srand((int)time(0));
  9.     int x;
  10.          int a[20001] = {0};//哈希数组,用于记录蚊子的位置
  11.          int temp;

  12.          for(int i = 0;i < 1000;++i) {//循环1000次代表放进1000只蚊子
  13.                    x = 0;//x坐标为0,代表蚊子从容器中间放入
  14.                    for(int j = 0;j < 20000;++j) {//循环20000次代表蚊子运动20000次
  15.                             temp = random(0,200) - 100;//随机蚊子运动一次的距离,在-100到100之间
  16.                             x += temp;
  17.                             while(x < -10000 || x > 10000) {//若蚊子运动超出边界,则重新随机,直到蚊子的位置不超出边界
  18.                                      x -= temp;
  19.                                      temp = random(0,200) - 100;
  20.                                      x += temp;
  21.                             }
  22.                    }
  23.                    a[x+10000]++;//用哈希标记蚊子运动之后的x坐标
  24.          }
  25.          int b[80] = {0};//以下是把蚊子的位置按照每250一个区间分80个区间统计输出
  26.          for(int i = 0;i < 80;++i) {
  27.         for(int j = i * 250;j < (i+1) * 250;++j) {
  28.             if(a[j] != 0) {
  29.                 b[i]++;
  30.             }
  31.         }
  32.         cout << i + 1 << " " << b[i] << endl;
  33.          }
  34.          /*for(int i = 0;i <= 20000;++i) {
  35.              cout << i + 1 << " " << a[i] << endl;
  36.          }*/

  37.     return 0;
  38. }
复制代码

当蚊子移动20000次的时候,得到的图像是不符合正态分布的:

当蚊子移动2000次的时候,得到的图像符合正态分布:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2021-3-18 20:07 | 显示全部楼层
你怎么知道符合正态分布?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|数学中国 ( 京ICP备05040119号 )

GMT+8, 2024-4-20 08:15 , Processed in 0.076172 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表