【python】随机模拟——赶火车问题、醉汉回家

news2024/10/6 14:25:00

问题描述

  • 1.赶火车问题。
  • 2.模拟二维随机游动(醉汉回家)

1.赶火车问题。

一列列车从A站开往B站,某人每天赶往B站上车。他已经了解到火车从A站到B站的运行时间是服从均值为30min,标准差为2min的正态随机变量。火车大约下午13:00离开A站,此人大约13:30到达B站。火车离开A站的时刻及概率如表1所示,此人到达B站的时刻及概率如表2所示。问此人能赶上火车的概率有多大?
表1:火车离开A站的时刻及概率
火车离站时刻 	13:00 	13:05 	13:10
概率 	0.7 	0.2 	0.1
表2:某人到达B站的时刻及概率
人到站时刻 	13:28 	13:30 	13:32 	13:34
概率 	0.3 	0.4 	0.2 	0.1

提示:设火车离开的时刻为T1 ,火车运行的时间为T2,该人到达火车站的时间为T3,即为赶上火车。
在这里插入图片描述

随机生成正态分布数据
s = np.random.normal(mu, sigma, 1000) # 参数分别为均值、标准差和生成样本数

T2 = np.random.normal(30,2) # 随机生成均值为30,标准差为2的数据
import random

import numpy as np

# 定义火车离开A站时间的均值和标准差
mean_time = 30
std_time = 2

# 定义此人到达B站的时间
arrival_time = 30  # 单位:分钟,大约13:30到达B站

# 定义模拟次数
num_simulations = 10000

# 初始化赶上火车的次数
count = 0

# 进行模拟
for i in range(num_simulations):
    # 生成火车离开A站的随机概率
    prob_A = random.randint(0,1)
    if prob_A <= 0.7:
        T1 = 0
    elif prob_A <= 0.9:
        T1 = 5
    else:
        T1 = 10
    # 生成他到达B站的随机概率
    prob_B = random.randint(0,1)
    if prob_B <= 0.3:
        T3 = 28
    elif prob_B <= 0.7:
        T3 = 30
    else:
        T3 = 34
    # 火车运行的时间T2
    T2 = np.random.normal(30,2) # 随机生成均值为30,标准差为2的数据
    # print(T2)
    # 是否能赶上火车
    if T3 < (T1 + T2):
        count += 1

# 计算赶上火车的概率
probability_caught_train = count / num_simulations
print(f"通过{num_simulations}次模拟,此人能赶上火车的概率是:{probability_caught_train:.2%}")
"""
通过10000次模拟,此人能赶上火车的概率是:71.96%
"""

2.模拟二维随机游动(醉汉回家)

在一个[0,100]×[0,100]的正方形区域内,假设某人的初始位置在点(50,50)处,他周围(前、后、左、右)包括他所站的位置,共有9个格子,每一步随机地移动到一个格子处,也可以保持原地不动。请模拟他的行走路线并作图表示,当他行走到10000步或者出界,则停止模拟。

import numpy as np
import random
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'Microsoft YaHei' # 处理文本

# 初始化参数
N = 10000  # 最大步数
bounds = (0, 100)  # 边界
init_position = (50, 50)  # 初始位置

# 创建用于存储位置的数组
positions = np.zeros((N, 2))
positions[0] = init_position

# 定义可能的方向和对应的步长
directions = [(0, 1), (0, -1), (1, 0), (-1, 0)]  # 前、后、左、右

# 模拟随机游动
for step in range(1, N):
    # 随机选择一个方向
    direction = random.choice(directions)  # 使用random.choice而不是np.random.choice

    # 计算新位置
    new_position = tuple(np.clip(np.array(positions[step - 1]) + np.array(direction), bounds[0], bounds[1]))

    # 如果新位置在边界内,则更新位置
    if new_position[0] >= bounds[0] and new_position[0] <= bounds[1] and new_position[1] >= bounds[0] and new_position[
        1] <= bounds[1]:
        positions[step] = new_position
    else:
        # 如果新位置出界,则停止模拟
        break

    # 绘制行走路线
plt.figure(figsize=(6, 5))
plt.plot(positions[:, 0], positions[:, 1], marker='*')
plt.xlim(bounds)
plt.ylim(bounds)

plt.xlabel('X 轴')
plt.ylabel('Y 轴')
plt.title('随机游行')
plt.grid(True)
plt.show()

参考赶火车问题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1621488.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

设置Linux开发板开机自启动QT程序的报错解决办法

设置Linux开发板开机自启动QT程序报错解决办法 设置开发板开机自启动QT 打开 /etc/init.d/rsC 文件&#xff0c;添加以下内容 cd / ./my_start_run.shmy_start_run.sh 是自己编写的自启动脚本&#xff0c;内容例如下&#xff1a;(也可以将这些直接写到 /etc/init.d/rsC 文件…

Maven | 依赖

Maven项目结构 pom.xml : 配置依赖文件 删除未下载成功依赖 新建一个bat文件&#xff0c;内容如下 echo off rem create by pengchengrem 这里写你的仓库路径 set REPOSITORY_PATHE:\repository rem 正在搜索... for /f "delims" %%i in (dir /b /s "%REPOSIT…

计算机三级网络技术考试第3章IP地址规划技术

IP地址为192.168.15.1/27的 子网掩码可以写为&#xff1a;255.255.255.224。 其中27 表示的是子网掩码的长度&#xff0c;也就是说子网掩码是27个1和5个0组成的&#xff0c;即11111111 11111111 11111111 11100000。 网络地址171.22.168.0的子网掩码为&#xff1a;255.255.248…

元宇宙虚拟空间的角色状态更新(七)

前言 该文章主要讲元宇宙虚拟空间的角色状态更新&#xff0c;基本核心技术点 角色状态更新 对角色设置一个位置判断&#xff08;从中心点向下投射一射线确定角色的位置&#xff09; character.feetRaycast(); feetRaycast的start获取碰撞体的位置&#xff0c;end射线结束的…

基于高斯壳映射的高效三维人体生成

Gaussian Shell Maps for Efficient 3D Human Generation 基于高斯壳映射的高效三维人体生成 Rameen Abdal*1  Wang Yifan*1  Zifan Shi*†1,2  Yinghao Xu1  Ryan Po1  Zhengfei Kuang1 Rameen Abdal *1 王一凡 *1 Zifan Shi *†1,2 Yinghao Xu 1 Ryan Po 1 Jengfei Kuan…

恶补《操作系统》2_3——王道学习笔记

2.3_1 进程同步、进程互斥 1、进程同步 指为了完成某种任务而建立的两个或多个进程&#xff0c;这些进程因为需要在某些位置上协调他们的工作次序而产生的制约关系。进程间的直接制约关系就是源于它们之间的相互合作。 2、进程互斥 把一个时间段内只允许一个进程使用的资源称…

2024年火爆全网的三款ai智能直播系统,你知道哪一种?

2024年火爆全网的三款ai智能直播系统,你知道哪一种&#xff1f; 如今网络时代&#xff0c;信息运转的速度非常迅猛。 有句话说的好&#xff1a;“若水三千只取一瓢饮&#xff0c;”快速筛选有价值的信息&#xff0c;过滤掉对自己有害的垃圾信息。不要想着把所有钱都赚完&…

基于Spring Boot的家具销售电商平台设计与实现

基于Spring Boot的家具销售电商平台设计与实现 开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/idea 系统部分展示 系统功能界面图&#xff0c;在系统首页可以查看首页…

面试:ThreadLocal

目录 1、ThreadLocal可以实现〔资源对象】的线程隔离&#xff0c;让每个线程各用各的【资源对象】&#xff0c;避免争用引发的线程安全问题 2、ThreadLocal同时实现了线程内的资源共享 3、原理 4、为什么ThreadLocalMap 中的 key (即 ThreadLocal &#xff09;要设计为弱引用…

强力的应用容器引擎---------Docker的资源控制

目录 一、CPU 资源控制 1.1cgroups有四大功能 1.2设置CPU使用率上限 1.2.1查看CPU使用率 1.2.2进行CPU压力测试 1.2.3设置50%的比例分配CPU使用时间上限 1.3设置CPU资源占用比&#xff08;设置多个容器时才有效&#xff09; 1.3.1创建两个容器为hua1 和hua2&#xff0c…

小白学自动化测试​:数据驱动DDT​!

大家好&#xff0c;今天我们开始学习自动化相关的内容&#xff0c;一讲到软件行业的自动化测试一般对于刚入门的同学来讲学习接口测试是一个不错的选择。入门相对容易并且在工作中去实践产生的收益也比较大&#xff0c;所以我们后面会来学习接口自动化测试相关内容。 今天给大…

芒果YOLOv8改进组合161:动态标签分配ATSS+新颖轻量化非对称多级压缩LADH检测头组合改进,LADH作为原创可以发表SCI顶刊论文,小目标高效涨点

💡本篇内容:【芒果YOLOv8改进ATSS标签分配策略|第四集】芒果YOLOv8改进组合161:动态标签分配ATSS+新颖轻量化非对称多级压缩LADH检测头组合改进,小目标高效涨点 💡🚀🚀🚀本博客 标签分配策略ATSS改进+ 新颖轻量化非对称多级压缩LADH检测头组合改进,适用于 YOLOv…

C语言洛谷题目分享(10)最厉害的学生和明明的随机数

目录 1.前言 2.俩则题目 1.最厉害的学生&#xff08;p5740&#xff09; 1.题目描述 2.输入格式 3.输出格式 4.输入输出样例 5.题解 2. 明明的随机数 1.题目描述 2.输入格式 3.输出格式 4.输入输出样例 5.题解 3.小结 1.前言 哈喽大家好啊&#xff0c;今天继续为大…

C/C++程序设计实验报告5 | 结构体和指针实验

本文整理自博主本科大一《C/C程序设计》专业课的课内实验报告&#xff0c;适合C语言初学者们学习、练习。 编译器&#xff1a;gcc 10.3.0 ---- 注&#xff1a; 1.虽然课程名为C程序设计&#xff0c;但实际上当时校内该课的内容大部分其实都是C语言&#xff0c;C的元素最多可能只…

2. 多机多卡运行nccl-tests对比分析

系列文章 第2章 多机多卡nccl-tests 对比分析 目录 系列文章前言一、本地环境1. 网卡接口2. RDMA3. TOPO信息pcie信息nvidia-smi topo -m 二、nccl-test对比分析1. 相关环境变量2. 不同情况的对比3. 总结与分析 前言 NCCL&#xff08;NVIDIA Collective Communications Libra…

ruoyi-nbcio-plus基于vue3的flowable收回任务后重新进行提交表单的处理

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a;RuoYi-Nbcio后台管理系统 http://122.227.135.243:9666/ 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码&#xff1a…

CUDA入门系列课程,从最基础着手

CUDA入门系列课程&#xff0c;从最基础着手&#xff0c;突出的就是一个字“细”&#xff01;&#xff01; github项目包含代码、博客、课件pdf下载地址&#xff1a;https://github.com/sangyc10/CUDA-code! 在这里插入图片描述 CUDA编程基础入门系列 https://github.com/sang…

Java冲突

本身 父类 接口(多) 如果出现同样名字的方法,就会出现冲突 * 情况描述1: * 当一个类,继承了父类,实现了某接口,父类中的成员方法和接口中的方法重名 * 解决方法: * 子类就近选择父类成员方法 亲爹优先原则 * *使用格式: * 父类:super.方法名 * 父接口:父接口名.super.方…

指针学习总结

当指针本身定义的类型不同十&#xff0c;指向的一次性取值长度也不同 数组元素的指针 数组存放字符串 数组存放字符串时存放在栈区&#xff0c;sizeof(str1) 128字节 字符指针指向字符串 str2此时存放的是h的地址&#xff0c;因此sizeof(str2) 4字节或者8字节 并且文字常量…

快速回复app是什么样

在电商领域&#xff0c;掌握一些必备的软件工具是提高工作效率、优化运营流程以及提升用户体验的关键。本文将为您介绍做电商必备的几个软件&#xff0c;帮助您更好地开展电商业务。 ​ 快速回复APP&#xff1a;重新定义沟通效率 在快节奏的现代社会中&#xff0c;人们对于沟通…