C# WPF 自己写的一个模拟病毒传播的程序,有可视化
源代码: https://github.com/t39q/VirusSpread

主要代码
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;namespace VirusSpread.BussnessLogic
{public class VirusSpread{public static ConcurrentBag<Model.PeopleModel.People> peoples;public static void Init(){peoples = new ConcurrentBag<Model.PeopleModel.People>();Random random = new Random(DateTime.Now.Millisecond * DateTime.Now.Second);for (int i = 0; i < 100; i++){Model.PeopleModel.People people = new Model.PeopleModel.People();people.ID = i;people.X = random.NextDouble() * 400;people.Y = random.NextDouble() * 400;people.Disease = false;peoples.Add(people);}for (int i = 100; i < 103; i++){Model.PeopleModel.People people = new Model.PeopleModel.People();people.ID = i;people.X = random.NextDouble() * 400;people.Y = random.NextDouble() * 400;people.Disease = true;peoples.Add(people);}}public static void Run(int spreadCount,int moveDistance){int count = 0;Random random = new Random(DateTime.Now.Millisecond * DateTime.Now.Second);while (true){if (count > spreadCount){break;}foreach (var item in peoples){int parity = random.Next(0,200);double tempX, tempY;if (parity % 2 == 0){tempX = item.X + random.NextDouble() * moveDistance;tempY = item.Y + random.NextDouble() * moveDistance;}else{tempX = item.X - random.NextDouble() * moveDistance;tempY = item.Y - random.NextDouble() * moveDistance;}if (tempX>0 && tempX < 400 && tempY>0 && tempY < 400){item.X = tempX;item.Y = tempY;}}Thread.Sleep(1000);count++;}}public static void Spread(int spreadCount,int infectious){int count = 0;while (true){if (count > spreadCount){break;}var healthy = peoples.Where(item => item.Disease == false).ToList();var infected = peoples.Where(item => item.Disease == true).ToList();var pairsJoin = (from healthyItem in healthyfrom infectedItem in infectedselect new { healthyItem, infectedItem }).ToList();foreach (var item in pairsJoin){CalcDistance(item.healthyItem, item.infectedItem, out double distance);if (distance < infectious){var infectedLabel = peoples.Where(find => find.ID == item.healthyItem.ID).FirstOrDefault();infectedLabel.Disease = true;}}Thread.Sleep(1000);count++;}}public static void Display(out string statistics){statistics = peoples.Where(item => item.Disease == true).Count().ToString();}public static void CalcDistance(Model.PeopleModel.People A, Model.PeopleModel.People B, out double distance){double X = Math.Abs(A.X - B.X);double Y = Math.Abs(A.Y - B.Y);distance = Math.Sqrt(X * X + Y * Y);}}
}相关文章:
C# WPF 自己写的一个模拟病毒传播的程序,有可视化
源代码: https://github.com/t39q/VirusSpread 主要代码 using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks;namespace VirusSpread.Bu…...
stable diffusion实践操作-大模型介绍-SDXL1大模型
系列文章目录 大家移步下面链接中,里面详细介绍了stable diffusion的原理,操作等(本文只是下面系列文章的一个写作模板)。 stable diffusion实践操作 提示:写完文章后,目录可以自动生成,如何生…...
软考高级系统架构设计师系列案例考点专题四:嵌入式系统
软考高级系统架构设计师系列案例考点专题四:嵌入式系统 一、相关概念二、软件可靠性和硬件可靠性的区别三、可靠性指标四、可靠性设计五、冗余技术六、软件容错七、双机容错技术八、集群技术九、负载均衡十、可维护性的评价指标十一、软件维护的分类嵌入式每年必考一题,但是属…...
Django Form实现表单使用及应用场景
首先需要定义一个使用场景: 音乐网站的前端部分可以添加上传歌手的单曲, 这个添加页面就使用django form表单来实现。 目录 数据表内容 歌手表及表模型 单曲表及表模型 演示表单使用 设置路由 创建form.py 视图实例化表单类 模板使用表单对象 表…...
golang面试题:json包变量不加tag会怎么样?
问题 json包里使用的时候,结构体里的变量不加tag能不能正常转成json里的字段? 怎么答 如果变量首字母小写,则为private。无论如何不能转,因为取不到反射信息。如果变量首字母大写,则为public。 不加tag,…...
国内项目管理中级证书CSPM-3正在报名!
CSPM-3中级项目管理专业人员认证,是中国标准化协会(全国项目管理标准化技术委员会秘书处),面向社会开展项目管理专业人员能力的等级证书。旨在构建多层次从业人员培养培训体系,建立健全人才职业能力评价和激励机制的要…...
vue表格不显示列号123456
我在网上找了半天,都是如何添加列号123456的,没有找到不显示列号的参考,现在把这个解决了,特此记录一下。 没有加右边的就会显示,加上右边的就隐藏了...
【大数据】Kafka 入门指南
Kafka 入门指南 1.Kafka 简介2.Kafka 架构3.分区与副本4.偏移量5.消费者组6.总结 1.Kafka 简介 Apache Kafka 是一种高吞吐、分布式的流处理平台,由 LinkedIn 开发并于 2011 年开源。它具有 高伸缩性、高可靠性 和 低延迟 等特点,因此在大型数据处理场景…...
Qt 5.15集成Crypto++ 8.8.0(MSVC 2019)笔记
一、背景 笔者已介绍过在Qt 5.15.x中使用MinGW(8.10版本)编译并集成Crypto 8.8.0。 但是该编译出来的库(.a和.dll)不适用MSVC(2019版本)构建环境,需要重新编译(.lib或和.dll…...
前端面试的话术集锦第 9 篇:高频考点(webpack性能优化)
这是记录前端面试的话术集锦第九篇博文——高频考点(webpack性能优化),我会不断更新该博文。❗❗❗ 在此章节中,我不会浪费篇幅给大家讲如何写配置文件。如果你想学习这方面的内容,那么完全可以去官网学习。在这部分的内容中,我们会聚焦于以下两个知识点,并且每一个知识…...
程序员,你真热爱编程吗?
程序员的热爱与演变 我发现,程序员这个行业不像其他行业那样,很多人是因为热爱编程才去做程序员,不会被逼无奈去做程序员(要是真有就太惨了)。 热爱编程的漫长过程 热爱过、⼜不爱了、⼜爱了,这是个过程…...
算法通关村-----海量数据的处理方法
从40亿中产生一个不存在的数 问题描述 给定一个文件,包含40亿个非负整数,请你设计一个算法,产生一个不在该文件中的数字。假设你只有1GB内存。 问题分析 40亿整数,在java中,用int存储的话,大概需要40亿✖️4B,大约…...
Pytorch 多卡并行(1)—— 原理简介和 DDP 并行实践
近年来,深度学习模型的规模越来越大,需要处理的数据也越来越多,单卡训练的显存空间和计算效率都越来越难以满足需求。因此,多卡并行训练成为了一个必要的解决方案本文主要介绍使用 Pytorch 的 DistributedDataParallel(…...
快速排序(重点)
前言 快排是一种比较重要的排序算法,他的思想有时候会作用到个别算法提上,公司招聘的笔试上有时候也有他的过程推导题,所以搞懂快排势在必行!!! 快速排序 基本思想: 根据基准,将数…...
python高级内置函数介绍及应用举例
目录 1. 概述2. 举例 1. 概述 Python中有许多高级内置函数,它们提供了丰富的功能和便利性,可以大大简化代码并提高效率。以下是一些常用的高级内置函数: map(): 用于将一个函数应用于一个可迭代对象的所有项,返回一…...
人体呼吸存在传感器成品,毫米波雷达探测感知技术,引领智能家居新潮流
随着科技的不断进步和人们生活质量的提高,智能化家居逐渐成为一种时尚和生活方式。 人体存在传感器作为智能家居中的重要组成部分,能够实时监测环境中人体是否存在,为智能家居系统提供更加精准的控制和联动。 在这个充满创新的时代…...
软件设计模式(三):责任链模式
前言 前面荔枝梳理了有关单例模式、策略模式的相关知识,这篇文章荔枝将沿用之前的写法根据示例demo来体会这种责任链设计模式,希望对有需要的小伙伴有帮助吧哈哈哈哈哈哈~~~ 文章目录 前言 责任链模式 1 简单场景 2 责任链模式理解 3 Java下servl…...
开发者的商业智慧:产品立项策划你知道多少?
文章目录 想法的萌芽🌟初步评估产品可行性🍊分析核心功能和特点以及竞争对手📝大健康监测📝时尚新科技产品📝准确性📝多功能📝品牌口碑📝数据分析与个性化建议📝社交互动…...
Linux 6.6 初步支持AMD 新一代 Zen 5 处理器
AMD 下一代 Zen 5 CPU 现已开始为 Linux 6.6 支持提交相关代码,最新补丁包括提供温度监控和 EDAC 报告等。 最新的 Linux 6.6 代码中已经加入了包括支持硬件监视器温度监控和 EDAC 报告的补丁。此外,新版本还加入了 x86 / misc 补丁,Phoronix…...
第五章 Linux常用应用软件
第五章 Linux常用应用软件 Ubuntu包含了日常所需的常用程序,集成了跨平台的办公套件LibreOffice和Mozila Firefox浏览器等。还提供了文本处理工具、图片处理工具等。 1.LibreOffice LibreOffice免费开源,遵照GPL分发源代码,与OpenOf…...
Glass Browser:如何在Windows上免费实现终极多任务处理体验
Glass Browser:如何在Windows上免费实现终极多任务处理体验 【免费下载链接】glass-browser A floating, always-on-top, transparent browser for Windows. 项目地址: https://gitcode.com/gh_mirrors/gl/glass-browser 你是否经常需要在多个窗口间来回切换…...
华为设备IPv6配置保姆级教程:从接口地址到静态路由,一次搞定
华为设备IPv6实战配置指南:从零搭建下一代网络架构 当企业网络从IPv4向IPv6迁移时,华为设备的配置逻辑与操作细节往往成为新手工程师的第一道门槛。不同于传统IPv4网络,IPv6的地址结构、邻居发现机制和路由配置都有其独特之处。本文将基于华为…...
在ARM架构Windows上,用Hyper-V快速部署Ubuntu Server 22.04 LTS
1. 为什么选择ARM架构WindowsHyper-V跑Ubuntu? 最近两年ARM架构的Windows设备越来越多了,像Surface Pro X这样的设备用起来确实轻便省电。但很多开发者发现,想在ARM电脑上跑个Linux环境测试代码,总会遇到各种兼容性问题。我自己用…...
NotebookLM智能体插件:AI驱动的自动化知识处理与任务执行
1. 项目概述:当NotebookLM遇上智能体,知识处理的范式革命最近在AI圈子里,一个名为“notebooklm-agent-plugin”的项目引起了我的注意。乍一看,这个名字结合了Google的NotebookLM和当下火热的“智能体”(Agentÿ…...
AI技能工程框架解析:从模块化设计到智能体构建实战
1. 项目概述:一个面向技能复现与创造的AI工具集最近在GitHub上看到一个挺有意思的项目,叫“skill-creator-pro”。光看这个名字,你可能会有点摸不着头脑,这到底是做什么的?是教人学技能的,还是生成技能的&a…...
仅1月Accepted!恭喜北大学者独作发表Nature子刊(IF 10.1)!
源自风暴统计网:一键统计分析与绘图的AI网站 引言 非协作者且是独作,用GBD 2023发表顶刊Nature是什么概念?来看今天这篇由北大学者发表的硬核文章!GBD 2023发文依然很顶,郑老师团队的专属科研训练营帮你实现从0到1的…...
Hotkey Detective:Windows热键冲突终极解决方案,快速定位“按键劫持“元凶
Hotkey Detective:Windows热键冲突终极解决方案,快速定位"按键劫持"元凶 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mir…...
水凝膜、钢化膜、护景贴大对决:一张表看懂该买谁
水凝膜、钢化膜、护景贴大对决:一张表看懂该买谁手机屏幕保护膜主要有三种:水凝膜、普通钢化膜和护景贴(悟赫德为代表)。很多人不知道它们到底有什么区别,我们从六个维度给你讲清楚。材料结构。水凝膜是单层软塑料&…...
考古现场数据智能治理新范式(NotebookLM+地层学语义建模深度解析)
更多请点击: https://intelliparadigm.com 第一章:考古现场数据智能治理新范式(NotebookLM地层学语义建模深度解析) 在田野考古数字化进程中,传统地层记录存在碎片化、非结构化与语义断层三大瓶颈。NotebookLM 作为基…...
山东反向旅游推荐“小众秘境古村落”
假期不想挤热门景区,只想寻一处安静古村放空散心?给大家整理山东4 个小众秘境古村落,全程 1-2.5 小时车程,适合近郊自驾、短途出游,原生态氛围拉满,人少景美超适合避峰出行。一、济南长清|方峪古…...
