细胞自动机初探——生命游戏
细胞自动机(Cellular Automaton),简单说就是能在生成许多自行演变的“小细胞”的程序,是一种很强大的人工智能实现,强大到几乎可以用来仿真研究社会和自然科学各个领域的问题,比如:构建模拟人群研究经济危机爆发过程,构建模拟生物群落研究生态系统演变,构建微观粒子群研究物理化学问题,构建“军队”模拟军事战场等等。由它引申出了数量地理学等学科,它更是分布式计算中的重要工具。。。。嘿嘿,是不是听起来很高端?想深入了解么?鄙人不才,今天带大家初步了解一下元胞自动机背后的故事。
1950年,计算机之父冯·诺伊曼写了一段程序用来模拟细胞复制过程,这就是最早的细胞自动机,只不过连冯诺伊曼本人也没太重视,所以这项研究很快就沉了。。。直到20年后的1970年,剑桥大学的约翰·何顿·康威设计了一个名为生命游戏(Life)的电脑游戏,细胞自动机才进入了科学家们的视野。后来,又有了模拟蚂蚁行为的兰顿蚂蚁(Langton ant)、模拟二极管电子逻辑的线世界(Wire world),再有史蒂芬·沃尔夫勒姆对初等细胞机256种规则所产生的模型进行了深入研究,并用熵来描述其演化行为,将细胞自动机分为平稳型、周期型、混沌型和复杂型,以至于今天应用到各个领域问题的研究……当然这是后话了,今天我们就以《生命游戏》为起点,揭开细胞自动机的神秘面纱。
生命游戏是一段很经典的仿真程序,我在网上可以找到很多实现代码,在Matlab上也有自带的demo。今天我就带大家从Matlab的demo入手,用java重写一个生命游戏。
首先我们运行Matlab中自带的demo文件我也传到了附件中 (MATLAB\R2010b\toolbox\matlab\demos\life.m),运行结果如下:
屏幕中每个蓝点即所谓的“细胞”,当程序跑起来,你会看到很多神奇的现象,如某些区域出现像核爆一样的“细胞爆发”,然后归于沉寂,只剩零星的固定细胞,或者有像小飞船一样的细胞“小飞船”在平移;但是经过几十秒后,整个画面几乎都沉寂了:只有个别区域还有稳定存在的小细胞团。
事实上,这个程序中的“细胞”只遵循以下几个简单的规则:
1、当前细胞为死亡状态时,当周围有3个存活细胞时,该细胞变成存活状态。 (模拟繁殖)
2、当前细胞为存活状态时,当周围低于2个(不包含2个)存活细胞时, 该细胞变成死亡状态。(模拟人口稀少)
3、当前细胞为存活状态时,当周围有2个或3个存活细胞时, 该细胞保持原样。
4、当前细胞为存活状态时,当周围有3个以上的存活细胞时,该细胞变成死亡状态。(模拟过度拥挤)
可以把最初的细胞结构定义为种子,当所有种子中的细胞同时被以上规则处理后, 可以得到第一代细胞图。按规则继续处理当前的细胞图,可以得到下一代的细胞图,周而复始,我们就看到了屏幕中的神奇的效果。
怎么样,是不是迫不及待了?下面我们就可以动手用java再现一个这样的生命游戏。
这个程序用到四个类:
MainUI:主窗体类,用来画出图形
Earth:地球(想不出更好的比喻了),承载”细胞”的容器,里面的land数组模拟地面上的细胞分布情况
LifeThread:用来不断更新数组以及执行重绘操作的线程类
MyListener:按钮监听器类,实现界面上start与stop按钮的功能
程序的逻辑其实很简单:用二维数组模拟地面空间的细胞图,1代表存活,0代表死亡,不断地遍历数组,根据上述规则更新数组,然后重绘,就实现了生命游戏。当然这里涉及到了线程的简单应用,很想我另一篇文章中的彩蛋程序,具体细节我就不再赘述了。
运行效果如下:
下面直接贴源代码:
MainUI类
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Graphics;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class MainUI extends JFrame{
//地球
private Earth earth;
//窗体组件
private JButton jb_start,jb_stop;
private JPanel jp_center,jp_west;
//初始化程序的方法
public void init(){
this.initEarth();
this.showUI();
}
//显示界面的方法
public void showUI(){
this.setTitle("生命游戏");
this.setSize(500,500);
this.setDefaultCloseOperation(3);
this.setLocationRelativeTo(null);
this.jb_start = new JButton("start");
this.jb_stop = new JButton("stop");
this.jp_west = new JPanel();
this.jp_west.setPreferredSize(new Dimension(80,100));
this.jp_west.add(jb_start);
this.jp_west.add(jb_stop);
//this.jp_west.setBackground(Color.green);
this.add(jp_west,BorderLayout.WEST);
this.jp_center = new JPanel();
//this.jp_center.setBackground(Color.red);
this.add(jp_center,BorderLayout.CENTER);
MyListener ml = new MyListener(this);
this.jb_start.addActionListener(ml);
this.jb_stop.addActionListener(ml);
this.setVisible(true);
Graphics g = this.jp_center.getGraphics();
this.earth.setG(g);
this.repaint();
}
//初始化大地的方法
public void initEarth(){
this.earth = new Earth();
this.earth.initLand();
this.repaint();
}
//重绘方法
public void repaint(Graphics g){
super.repaint();
//System.out.println("在重绘");
earth.drawCells();
}
public static void main(String [] args){
new MainUI().init();
}
public Earth getEarth() {
return this.earth;
}
}
Earth类 import java.awt.Color; import java.awt.Graphics; import java.util.ArrayList; import java.util.Random; public class Earth { //表示地面的数组 private int[][] land; //图像处理类 private Graphics g; public void setG(Graphics g){ this.g = g; } public Graphics getG() { return g; } //初始化大地的方法(增加边缘方便后面判断) public void initLand(){ this.land = new int [102][102]; for(int ii = 0;ii<102;ii++){ for (int jj = 0;jj < 102;jj++){ land[ii][jj] = 0; } }//初值为0 //生成种子细胞 System.out.println("生成种子之前:"); printLand(); this.setSeeds(); } //生成种子细胞的方法 public void setSeeds(){ Random rand = new Random(); int count = rand.nextInt(2000)+1000;//生成种子数 //随机创建细胞种子 int x= 0,y = 0; for (int ii = 0;ii < count;ii++){ x = rand.nextInt(100)+1; y = rand.nextInt(100)+1; land[x][y] = 1; } System.out.println("生成种子之后:"); printLand(); } //更新地面数组的方法 public void updataLand(){ //创建临时数组,避免之前的改动影响后面 int [][] tland = new int [102][102]; for(int ii = 0;ii < 102;ii++){ for(int jj = 0;jj< 102;jj++){ tland[ii][jj] = land[ii][jj]; } } //根据规则更新临时数组 for(int ii = 1;ii<= 100;ii++){ for(int jj = 1;jj <= 100;jj++){ //计算周围存活数 int neighbor = this.countNeighbors(jj, ii); //执行规则 //规则1: 当前细胞为死亡状态时,当周围有3个存活细胞时,该细胞变成存活状态。 if(land[ii][jj] == 0 && neighbor == 3){ tland[ii][jj] = 1; } //规则2.当前细胞为存活状态时,当周围低于2个(不包含2个)存活细胞时, 该细胞变成死亡状态。(模拟人口稀少) if(land[ii][jj] == 1 && neighbor < 2){ tland[ii][jj] = 0; } //规则3.当前细胞为存活状态时,当周围有2个或3个存活细胞时, 该细胞保持原样。 if(land[ii][jj] == 1 && (neighbor == 2 || neighbor == 3)){ tland[ii][jj] = 1; } //规则4.当前细胞为存活状态时,当周围有3个以上的存活细胞时,该细胞变成死亡状态。(模拟过度拥挤) if(land[ii][jj] == 1 && neighbor > 3){ tland[ii][jj] = 0; } } } //最后替换以更新数组 this.land = tland; } //计数细胞周围细胞数的方法 public int countNeighbors(int x,int y){ int count = 0; if(land[x-1][y] == 1){ count++; } if(land[x+1][y] == 1){ count++; } if(land[x][y-1] == 1){ count++; } if(land[x][y+1] == 1){ count++; } if(land[x-1][y-1] == 1){ count++; } if(land[x-1][y+1] == 1){ count++; } if(land[x+1][y-1] == 1){ count++; } if(land[x+1][y+1] == 1){ count++; } return count; } //画出细胞的方法 public void drawCells(){ for(int ii = 1;ii <= 100;ii++){ for(int jj = 1;jj<= 100;jj++){ if(land[ii][jj] == 1){ g.setColor(Color.BLUE); g.drawRect(4*jj, 4*ii, 4, 4); } } } } //打印land数组的方法 public void printLand(){ for(int ii = 0;ii< 102;ii++){ for(int jj = 0;jj < 102;jj++){ System.out.print(land[jj][ii]+" "); } System.out.println(); } } }
LifeThread类 public class LifeThread extends Thread{ private boolean running = true; private Earth earth; private MainUI mainUI; //传入窗体对象 public LifeThread(MainUI mainUI){ this.mainUI = mainUI; this.earth = mainUI.getEarth(); } public void run(){ while(running){ earth.updataLand(); mainUI.repaint(earth.getG()); //earth.printLand(); try { sleep(10); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } mainUI.init(); } public void setRunning(boolean running) { this.running = running; } }
MyListener类 import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class MyListener implements ActionListener{ private LifeThread life; private MainUI mainUI; boolean pressstart = false; //传入窗体对象 public MyListener(MainUI mainUI){ this.mainUI = mainUI; } //监听方法 public void actionPerformed(ActionEvent e) { String com = e.getActionCommand(); if(com.equals("start")){ System.out.println("点击了start!"); if(!pressstart){ pressstart = true; life = new LifeThread(this.mainUI); life.start(); } } if(com.equals("stop")){ System.out.println("点击了stop"); if(this.life != null){ this.life.setRunning(false); this.pressstart = false; } } } }
相关推荐
【项目资源】: 物联网项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
【项目资源】: 适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
# 基于Python的KMeans和EM算法结合图像分割项目 ## 项目简介 本项目结合KMeans聚类和EM(期望最大化)算法,实现对马赛克图像的精准分割。通过Gabor滤波器提取图像的多维特征,并利用KMeans进行初步聚类,随后使用EM算法优化聚类结果,最终生成高质量的分割图像。 ## 项目的主要特性和功能 1. 图像导入和预处理: 支持导入马赛克图像,并进行灰度化、滤波等预处理操作。 2. 特征提取: 使用Gabor滤波器提取图像的多维特征向量。 3. 聚类分析: 使用KMeans算法对图像进行初步聚类。 利用KMeans的聚类中心初始化EM算法,进一步优化聚类结果。 4. 图像生成和比较: 生成分割后的图像,并与原始图像进行比较,评估分割效果。 5. 数值比较: 通过计算特征向量之间的余弦相似度,量化分割效果的提升。 ## 安装使用步骤 ### 假设用户已经下载了项目的源码文件 1. 环境准备:
HCIP第一次作业:静态路由综合实验
【项目资源】: 单片机项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
内容概要:本文详细介绍了Johnson-SU分布的参数计算与优化过程,涵盖位置参数γ、形状参数δ、尺度参数ξ和伸缩参数λ的计算方法,并实现了相应的Python代码。文中首先导入必要的库并设置随机种子以确保结果的可复现性。接着,分别定义了四个参数的计算函数,其中位置参数γ通过加权平均值计算,形状参数δ基于局部均值和标准差的比值,尺度参数ξ结合峰度和绝对偏差,伸缩参数λ依据偏态系数。此外,还实现了Johnson-SU分布的概率密度函数(PDF),并使用负对数似然函数作为目标函数,采用L-BFGS-B算法进行参数优化。最后,通过弹性网络的贝叶斯优化展示了另一种参数优化方法。; 适合人群:具有Python编程基础,对统计学和机器学习有一定了解的研究人员或工程师。; 使用场景及目标:①需要对复杂数据分布进行建模和拟合的场景;②希望通过优化算法提升模型性能的研究项目;③学习如何实现和应用先进的统计分布及优化技术。; 阅读建议:由于涉及较多数学公式和编程实现,建议读者在阅读时结合相关数学知识,同时动手实践代码,以便更好地理解和掌握Johnson-SU分布及其优化方法。
TSP问题的3种智能优化方法求解(研究生课程《智能优化算法》结课大作业).zip
【项目资源】: 物联网项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
【项目资源】: 单片机项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
自动发布Java项目(Tomcat)Shell脚本
# 基于webpack和Vue的前端项目构建方案 ## 项目简介 本项目是基于webpack和Vue构建的前端项目方案,借助webpack强大的打包能力以及Vue的开发特性,可用于快速搭建现代化的前端应用。项目不仅完成了基本的webpack与Vue的集成配置,还在构建速度优化和代码规范性方面做了诸多配置。 ## 项目的主要特性和功能 1. 打包功能运用webpack进行模块打包,支持将scss转换为css,借助babel实现语法转换。 2. Vue开发支持集成Vue框架,能使用Vue单文件组件的开发模式。 3. 构建优化采用threadloader实现多进程打包,cacheloader缓存资源,极大提高构建速度开启热更新功能,开发更高效。 4. 错误处理与优化提供不同环境下的错误映射配置,便于定位错误利用webpackbundleanalyzer分析打包体积。
Hands-On Large Language Models - Jay Alammar 袋鼠书 《动手学大语言模型》PDF
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
# 基于Arduino Feather M0和Raspberry Pi的传感器数据采集与监控系统 ## 项目简介 本项目是一个基于Arduino Feather M0和Raspberry Pi的传感器数据采集与监控系统。系统通过Arduino Feather M0采集传感器数据,并通过WiFi将数据传输到Raspberry Pi。Raspberry Pi运行BalenaOS,集成了MySQL、PHP、NGINX、Apache和Grafana等工具,用于数据的存储、处理和可视化。项目适用于环境监测、物联网设备监控等场景。 ## 项目的主要特性和功能 1. 传感器数据采集使用Arduino Feather M0和AM2315传感器采集温度和湿度数据。 2. WiFi数据传输Arduino Feather M0通过WiFi将采集到的数据传输到Raspberry Pi。
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
【项目资源】: 适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
【项目资源】: 物联网项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
# 基于Arduino的WiFi按钮项目 ## 一、项目简介 本项目是一个基于ESP8266芯片的Arduino项目,主要实现WiFi连接、电压检测、LED灯控制以及向服务器发送POST请求等功能。通过简单的按钮操作,可以实现与服务器通信并获取相关信息,同时能检测电池电压并提示用户。 ## 二、项目的主要特性和功能 1. WiFi连接项目能够自动连接到指定的WiFi网络。 2. 电压检测通过ADC(模数转换器)检测电池电压,并在电压低于阈值时发出警告。 3. LED灯控制通过控制LED灯的亮灭来提示用户不同的状态信息(如连接成功、电压低等)。 4. 服务器通信项目可以向指定的服务器发送POST请求并处理返回的HTTP响应。 ## 三、安装使用步骤 1. 环境准备确保已安装Arduino IDE和ESP8266插件。 2. 下载源码下载项目的源码文件并解压。 3. 打开项目在Arduino IDE中打开解压后的main.cpp文件。
该资源为scipy-0.10.1-cp26-cp26mu-manylinux1_x86_64.whl,欢迎下载使用哦!