python实验一_Python实验一
(四)、排列组合序列
【题目描述】
用户输入整数n(1<=n<=26)和整数m(m<=n),然后输入n个不同的字母,请编写程序输出在这n个字母中选择m个字母的所有排列序列和组合序列。
【源代码程序】
#!/usr/bin/env python
# _*_coding:utf-8 _*_
#@Time :2019/4/23 0023 下午 2:12
#@Author :喜欢二福的沧月君(necydcy@gmail.com)
#@FileName: Per_And_Com.py
#@Software: PyCharm
import iterto
(四)、排列组合序列
【题目描述】
用户输入整数n(1<=n<=26)和整数m(m<=n),然后输入n个不同的字母,请编写程序输出在这n个字母中选择m个字母的所有排列序列和组合序列。
"""
e=input()
num=int(input())
arr = input().split(" ")
print(arr)
a = list(itertools.combinations(arr,num))
b = list(itertools.permutations(arr,num))
print("Permutation:" )
for i in b:
for j in i:
print(j,end=" ")
print()
print("Combination:" )
for i in a:
for j in i:
print(j,end=" ")
print()
(五)、蒙特·卡罗法计算圆周率
【题目描述】
蒙特·卡罗方法是一种通过概率来得到问题近似解的方法,在很多领域都有重要的应用,其中就包括圆周率近似值的计问题。假设有一块边长为2的正方形木板,上面画一个单位圆,然后随意往木板上扔飞镖,落点坐标(x,y)必然在木板上(更多的时候是落在单位圆内),如果扔的次数足够多,那么落在单位圆内的次数除以总次数再乘以4,这个数字会无限逼近圆周率的值。这就是蒙特·卡罗发明的用于计算圆周率近似值的方法。编写程序,模拟蒙特·卡罗计算圆周率近似值的方法,输入掷飞镖次数,然后输出圆周率近似值。
【源代码程序】
#!/usr/bin/env python
# _*_coding:utf-8 _*_
#@Time :2019/4/30 0030 下午 2:43
#@Author :喜欢二福的沧月君(necydcy@gmail.com)
#@FileName: Monte_Carlo.py
#@Software: PyCharm
"""
(五)、蒙特·卡罗法计算圆周率
【题目描述】
蒙特·卡罗方法是一种通过概率来得到问题近似解的方法,在很多领域都有重要的应用,其中就包括圆周率近似值的计问题。假设有一块边长为2的正方形木板,上面画一个单位圆,然后随意往木板上扔飞镖,落点坐标(x,y)必然在木板上(更多的时候是落在单位圆内),如果扔的次数足够多,那么落在单位圆内的次数除以总次数再乘以4,这个数字会无限逼近圆周率的值。这就是蒙特·卡罗发明的用于计算圆周率近似值的方法。编写程序,模拟蒙特·卡罗计算圆周率近似值的方法,输入掷飞镖次数,然后输出圆周率近似值。
"""
import random
num=int(input())
ok=0
for i in range(1,num+1):
x=random.uniform(-1,1)#到-1到1的随机数
y=random.uniform(-1,1)
if(x*x+y*y<=1):
ok+=1
print(ok/num*4)
【运行测试】
(六)、验证6174猜想
【题目描述】
1955年,卡普耶卡(D.R.Kaprekar)对4位数字进行了研究,发现一个规律:对任意各位数字不相同的4位数,使用各位数字能组成的最大数减去能组成的最小数,对得到的差重复这个操作,最终会得到6174这个数字,并且这个操作最多不会超过7次。请编写程序验证这个猜想。
【源代码程序】
#!/usr/bin/env python
# _*_coding:utf-8 _*_
#@Time :2019/4/30 0030 下午 2:08
#@Author :喜欢二福的沧月君(necydcy@gmail.com)
#@FileName: 6174.py
#@Software: PyCharm
"""
(六)、验证6174猜想
【题目描述】
1955年,卡普耶卡(D.R.Kaprekar)对4位数字进行了研究,发现一个规律:对任意各位数字不相同的4位数,
使用各位数字能组成的最大数减去能组成的最小数,对得到的差重复这个操作,最终会得到6174这个数字,
并且这个操作最多不会超过7次。请编写程序验证这个猜想。
"""
def Min_Number(a):
a=str(a)
arr=[]
for i in range(0,4):
arr.append(a[i])
arr.sort()
return int(''.join(arr))
def Max_Number(a):
a=str(a)
arr = []
for i in range(0, 4):
arr.append(a[i])
arr.sort(reverse=True)
return int(''.join(arr))
a=input()
while (int(a)!=6174):
a=Max_Number(a)-Min_Number(a)
print(a,end=" ")
【运行测试】
(七)、模拟页面调度LRU算法
【题目描述】
所谓LRU算法,是指在发生缺页并且没有空闲主存块时,把最近最少使用的页面换出主存块,腾出地方来调入新页面。
问题描述:一进程获得n个主存块的使用权,对于给定的进程访问页面次序,问当采用LRU算法时,输出发生的缺页次数。
【源代码程序】
#!/usr/bin/env python
# _*_coding:utf-8 _*_
#@Time :2019/4/30 0030 下午 3:37
#@Author :喜欢二福的沧月君(necydcy@gmail.com)
#@FileName: LRU.py
#@Software: PyCharm
"""
所谓LRU算法,是指在发生缺页并且没有空闲主存块时,把最近最少使用的页面换出主存块,腾出地方来调入新页面。
问题描述:一进程获得n个主存块的使用权,对于给定的进程访问页面次序,问当采用LRU算法时,输出发生的缺页次数。
"""
def LRU(pages, maxNum,n):
temp = []
times = 0
for page in lst:
num = len(temp)
if num < n:
times += 1
temp.append(page)
elif num == n: #要访问的新页面已在主存块中
if page in temp: #处理“主存块”,把最新访问的页面交换到列表尾部
pos = temp.index(page)
temp = temp[:pos] + temp[pos+1:] + [page]
else: #把最早访问的页面踢掉,调入新页面
temp.pop(0)
temp.append(page)
times += 1
return times
n=int(input())
lst=tuple(input().split(" "))
print(LRU(lst, 3,n))
【运行测试】
(八)、爬楼梯
【题目描述】
假设一段楼梯共n(n>1)个台阶,小朋友一步最多能上3个台阶,那么小朋友上这段楼梯一共有多少种方法。
【源代码程序】
#!/usr/bin/env python
# _*_coding:utf-8 _*_
#@Time :2019/4/24 0024 下午 10:06
#@Author :喜欢二福的沧月君(necydcy@gmail.com)
#@FileName: Climbing_ladder.py
#@Software: PyCharm
"""
(八)、爬楼梯
【题目描述】
假设一段楼梯共n(n>1)个台阶,小朋友一步最多能上3个台阶,那么小朋友上这段楼梯一共有多少种方法。
"""
def climb(num):
if num==1:
return 1
if num==2:
return 2
if num==3:
return 4
else:
sum=climb(num-1)+climb(num-2)+climb(num-3)
return sum
print(climb(int(input())))
【运行测试】
(九)、杨辉三角形
【题目描述】
输出n(0
【源代码程序】
#!/usr/bin/env python
# _*_coding:utf-8 _*_
#@Time :2019/4/24 0024 下午 9:36
#@Author :喜欢二福的沧月君(necydcy@gmail.com)
#@FileName: YanghuiTriangle.py
#@Software: PyCharm
"""
(九)、杨辉三角形
【题目描述】
输出n(0
"""
def YangHui (num = 10):
LL = [[1]]
for i in range(1,num):
LL.append([(0 if j== 0 else LL[i-1][j-1])+ (0 if j ==len(LL[i-1]) else LL[i-1][j]) for j in range(i+1)])
return LL
a=int(input())
for i in YangHui(a):
for j in i:
print("%5d"%j,end="")
print()
【运行测试】
(十)、筛法求素数
【题目描述】
用户输入整数n和m(1
【源代码程序】
#!/usr/bin/env python
# _*_coding:utf-8 _*_
# @Time :2019/4/23 0023 下午 10:03
# @Author :喜欢二福的沧月君(necydcy@gmail.com)
# @FileName: PremeNumble.py
# @Software: PyCharm
import numpy
"""
(十)、筛法求素数
【题目描述】
用户输入整数n和m(1
"""
import math
num = [int(n) for n in input('').split()]
MAX_INT=num[1]
MIN_INT=num[0]
marks_bool = [True] * (MAX_INT + 1)
for i in range(2,int(math.sqrt(MAX_INT)) + 1):
j = i
k = j
while j * k <= MAX_INT:
marks_bool[j * k] = False
k += 1
sum_int = 0
l=[]
for i in range(2,MAX_INT + 1):
if marks_bool[i] is True:
if(i>=MIN_INT):
l.append(i)
print(numpy.array(l).reshape(-1,5))
【运行测试】
(十一)、查找鞍点
【题目描述】
对于给定5X5的整数矩阵,设计算法查找出所有的鞍点的信息(包括鞍点的值和行、列坐标,坐标从1开始)。
提示:鞍点的特点:列上最小,行上最大。
【源代码程序】
#!/usr/bin/env python
# _*_coding:utf-8 _*_
#@Time :2019/4/23 0023 下午 3:29
#@Author :喜欢二福的沧月君(necydcy@gmail.com)
#@FileName: Saddle_Point.py
#@Software: PyCharm11 3 5 6 9 12 4 7 8 10 10 5 6 9 11 8 6 4 7 8 15 10 11 20 25
#
import numpy as np
num = [int(n) for n in input('').split()]
num = np.array(num,dtype=int)
num = num.reshape(5,5)
for i in range(0,5):
for j in range(0,5):
if (num[i][j] == min(num[:,j]) & num[i][j] == max(num[i,:])):
print("[%s,%s,%s]"%(i+1,j+1,num[i][j]))
【运行测试】
(十二)、正整数的因子展开式
【题目描述】
编写程序,输出一个给定正整数x(x>1)的质因子展开式。
【源代码程序】
#!/usr/bin/env python
# _*_coding:utf-8 _*_
#@Time :2019/4/23 0023 下午 9:38
#@Author :喜欢二福的沧月君(necydcy@gmail.com)
#@FileName: Proton.py
#@Software: PyCharm
a=int(input())
b=str(a)
num=[]
i=1
while i <= a:
if a%i == 0:
a = a/i
num.append(i)
print(num)
i = 1
i+=1
b+='='+str(num[1])
for j in num[2:]:
b+="*"+str(j)
print(b)
【运行测试】
(十三)、牛顿迭代法(写到实验报告中)
【题目描述】
编写程序,使用牛顿迭代法求方程 在x附近的一个实根。
【源代码程序】
#!/usr/bin/env python
# _*_coding:utf-8 _*_
#@Time :2019/4/23 0023 下午 2:12
#@Author :喜欢二福的沧月君(necydcy@gmail.com)
#@FileName: Per_And_Com.py
#@Software: PyCharm
from math import fabs
def solut(a,b,c,d,e):
x1=e
# 迭代:
while True:
x=x1
f = ((a * x + b) * x + c) * x + d #原函数
f1 = (3 * a * x + 2 * b) * x + c #求导的函数
x1 = x - f / f1
if (fabs(x1 - x) <= 0.00000001):
return x1
num = [float(n) for n in input('').split()]
print(("%0.2f")%(solut(num[0],num[1],num[2],num[3],num[4])))
【运行测试】
python实验一_Python实验一相关推荐
- python实验题_python实验二
安徽工程大学 Python 程序设计 实验报告 班级 物流191 姓名 王凡 学号 3190505102 成绩____________ 日期20200322 指导教师 修宇 [实验名称] 实验二 顺序 ...
- 计算机python实验报告_Python实验报告六:函数
安徽工程大学 Python程序设计 实验报告 班级:物流192 姓名:周立学号:3190505227 日期:2020年5月5日 指导老师:修宇 [实验目的] 掌握函数的定义与使用方法:掌握函数的参数传 ...
- python词频统计实验报告_Python实验报告八
安徽工程大学Python程序设计 班级:物流191 姓名:汤振宇 学号:319050108 成绩: 日期:2020/06/04 指导老师:修宇 [实验目的] : 掌握读写文本文件或 CSV 文件,进而 ...
- python实验目的_python实验一
安徽工程大学 Python程序设计实验报告 班级物流管理191姓名彭艺学号3190505139成绩 日期2020年3月3日指导老师修宇 实验名称 实验一 熟悉IDLE和在线编程平台 实验目的 1.掌握 ...
- python安装与开发环境搭建实验总结_python实验一:python环境配置
你看到提示符 >>> 就表示我们已经在 Python 交互式环境中了,可以输入任何 Python 代码,回车后会立刻得到执行结果.现在,输入 exit() 并回车,就可以 退出 ...
- python实验四_python实验四
1.简单计算器的设计 请设计简单的"加减乘除"计算器并从键盘上输入数据进行计算 def add(x, y): """相加""&qu ...
- python股票数据分析实验报告_Python实验报告
一. 实验原理 ( 要求.任务等 ) (一).Python的开发环境 Python诞生于20世纪90年代初,是一种解释型.面向对象.动态数据类型的高级程序设计语言,是最受欢迎的程序设计语言之一. 编写 ...
- python多线程处理文件_Python实验:采用多线程在一个文件中查找特定字符串
展开全部 import threading , time def countstr(f): global findstr,occurtimes times=0 for string in f: if ...
- python实验收获_python实验课代码心得
在交互状态下格式化打印 ①注意看 % 和 {} 格式化打印的区别,将它们与C语言的格式化打印区分开来. 2.凯撒加密算法 ①原理:字母表一共有26个英文字母,加密时,我们需要将某个明文字母做N位偏移得 ...
最新文章
- 组策略 之 驱动器映射
- python加法怎么写_51NOD 大数加法以及python写法
- 两数之和C++代码实现超详细讲解
- 笔记本平板电脑推荐_ONETALK 亦说便携式平板电脑推荐
- 总谐波失真计算公式_新能源汽车技术|车用轮毂电机转矩谐波协同控制策略
- chrome解决跨域(CORS)问题---chrome插件
- ddr4 lpddr4区别_i3 10100F和i5 9400F哪个好?区别有多大?两者性能对比评测_硬件评测...
- spring boot错误: 找不到或无法加载主类
- matlab堆栈的思想,[转载]Matlab源代码:堆栈类Stack的实现
- 【codeforces 340B】Maximal Area Quadrilateral
- C语言刷题训练营-第一讲
- ims应用服务器,IMS业务应用服务器部署方式分析.PDF
- 钱钟书论“反者道之动”
- 宜宾学院谢江宜计算机基础题,宜宾学院2011-2012学年度下期期末公共课考试安排表.xls...
- 加快打造“云上贵州”,靠大数据实现“后发赶超”
- 魔兽争霸war3心得体会(三):UD内战
- 用classwizard生成某个基类的继承类
- 关于VMware15使用unlocker解锁Mac OS时cmd一闪而过导致失败的问题解决方法
- python中的ddt用法
- SAAS平台构建-后端方案