python学习应用笔记(一)
之前一直用c++写程序 所以考虑程序一般都比较容易往数据结构的方向想 而自己设计数据结构往往要费很大事 昨天看了一下python 发现脚本语言 真是厉害 用来进行模拟运算确实不错 可以先想个解决问题的思路 用python 先测试一下 如果可行 如果为了运行效率 使用c++改写 确实是一个不错的选择
昨天在看操作系统的时候看到这么一个题目
这个题目是操纵系统中典型的为多个进程分配资源 最后达到安全状态的题目,可以理解为找一条安全路径
如果使用c++来写 那就用深度优先搜索算法 然后就要慢慢思考解决办法了 , 为了练习刚刚学习的python 我使用python的 numpy来解决这个问题
因为还没有学怎么写函数 所以写成四个循环了 不过算法复杂度应该差不多, 准备再学一段时间后 优化一下
import numpy
a=numpy.array(([1,1,2,4],
[0,1,2,2],
[1,1,1,0],
[1,1,1,1]))
b=numpy.array(([1,2,3,6],
[1,1,2,2],
[1,2,1,1],
[1,1,2,3]))
c=numpy.array([0,1,0,1]) d=b-a for i in range(0,4):
j = 0
for j in range(0,4):
if d[i][j]>c[j]:
break
# print 'e'
# if j==3 and d[i][j]<=c[j]:
else:
e=numpy.array([0,0,0,0])
f=c
e[i]=1
f=f+d[i]
d[i]=numpy.array((0,0,0,0)) for k in range(0,4):
if e[k]==1:
continue
n = 0
for n in range(0,4):
if d[k][n]>f[j]:
break;
# if n==3 and d[k][n]<=f[j]:
else: e[k]=1
f=f+d[k]
d[k]=numpy.array((0,0,0,0))
for m in range(0,4):
if e[m]==1:continue
p = 0
for p in range(0,4):
if d[m][p]>f[p]:break
# print p
# print m
# if p==3 and d[m][p]<=f[p]:
else: e[m]=1
f=f+d[m]
d[m]=numpy.array((0,0,0,0))
for q in range(0,4):
if e[q]==1:continue
r = 0
for r in range(0,4):
if d[q][r]>f[r]:break
# if r==3 and d[q][r]<=f[r]:
else:
print i+1
print k+1
print m+1
print q+1
# print 'heihei'
exit() d[m]=b[m]-a[m]
e[m]=0
d[k]=b[k]-a[k]
e[k]=0
d[i]=b[i]-a[i]
e[i]=0
python学习应用笔记(一)的更多相关文章
- Python学习基础笔记(全)
换博客了,还是csdn好一些. Python学习基础笔记 1.Python学习-linux下Python3的安装 2.Python学习-数据类型.运算符.条件语句 3.Python学习-循环语句 4. ...
- [python学习手册-笔记]001.python前言
001.python前言 ❝ 本系列文章是我个人学习<python学习手册(第五版)>的学习笔记,其中大部分内容为该书的总结和个人理解,小部分内容为相关知识点的扩展. 非商业用途转载请注明 ...
- [python学习手册-笔记]002.python核心数据类型
python核心数据类型 ❝ 本系列文章是我个人学习<python学习手册(第五版)>的学习笔记,其中大部分内容为该书的总结和个人理解,小部分内容为相关知识点的扩展. 非商业用途转载请注明 ...
- [python学习手册-笔记]003.数值类型
003.数值类型 ❝ 本系列文章是我个人学习<python学习手册(第五版)>的学习笔记,其中大部分内容为该书的总结和个人理解,小部分内容为相关知识点的扩展. 非商业用途转载请注明作者和出 ...
- [python学习手册-笔记]004.动态类型
004.动态类型 ❝ 本系列文章是我个人学习<python学习手册(第五版)>的学习笔记,其中大部分内容为该书的总结和个人理解,小部分内容为相关知识点的扩展. 非商业用途转载请注明作者和出 ...
- python学习第一次笔记
python第一次学习记录 python是什么编程语言 变成语言主要从以下几个角度进行分类,编译型和解释型.静态语言和动态语言.强类型定义语言和弱类型定义语言. 1.1编译型与解释性 编译型:一次性将 ...
- Python 学习开发笔记之IO操作
文件或者目录的路径操作 获取当前工作目录 import os import sys cwd = os.getcwd() 路径的拼接 os.path.join(path,"dir") ...
- python学习总结笔记(一)
1.raw_input("请输入:")提示录入信息,读取录入的字符串返回你录入的字符串2.os.environ 获取所有系统的环境变量,返回一个字典.3.str与repr区别str ...
- python 学习常见问题笔记
1.for...if...构建List segs = [v for v in segs if not str(v).isdigit()]#去数字 https://www.cnblogs.com/eni ...
随机推荐
- HDU 4770 Lights Against Dudely
Lights Against Dudely Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Ot ...
- Appium环境搭建Java篇
1.下载.安装JDK&配置Java环境变量 JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html ...
- jmeter随笔(9)--有两种编码风格,导致数据乱码
问题:在一个网站,有两种编码风格,导致数据乱码 解决办法: 1.首先设置jmeter的配置文件 2.针对要求是utf-8格式的这样的请求,做单独的编码处理(beanshell处理) 3.运行,在htm ...
- python中get、post数据
方法一:urllib2 参考:http://www.cnblogs.com/chenzehe/archive/2010/08/30/1812995.html post: #!/usr/bin/pyth ...
- 学习练习 java数据库查询小题
10. 查询Score表中的最高分的学生学号和课程号.(子查询或者排序) 11. 查询每门课的平均成绩. 12.查询Score表中至少有5名学生选修的并以3开头的课程的平均分数. 13.查询分数大于7 ...
- 金额input框控制只能小数点后有两位的有效数字
<%@include file="/WEB-INF/jsp/common/common.jsp" %> <title>价格录入限定</title> ...
- 如何用手机维护Mysql数据库
如何用手机维护网站数据库 身边很多人都在拿ipad或iphone来玩儿游戏或听歌,大多数人认为它们就是个娱乐设备,在我看来它们同样可以帮助我们更加快捷的工作,我用手机遥控单反.用手机控制PPT的播放. ...
- .Net 乱序方法
前两天开发一个奇葩的功能,突然间想到了用打乱顺序的方式解决.记录代码如下: /// <summary> /// 把收集回来的列表打乱顺序之后返回 /// </summary> ...
- Python搭建简易HTTP服务(3.x版本和2.x版本的)
废话不多说,我们工作时经常会用到需要HTTP服务,如果不想搞那些复杂的Apache.IIS服务器等,这时我们就可以用python帮我们搭建一个简单的服务器.操作如下: 1.下载并安装一个python: ...
- plsql 登录后,提示数据库字符集(AL32UTF8)和客户端字符集(ZHS16GBK)不一致
plsql 登录后,提示数据库字符集(AL32UTF8)和客户端字符集(ZHS16GBK)不一致 (2014-07-25 18:40:34)转载▼ 标签: it 分类: Database Databa ...