2024/05/13
学习时长:2小时
代码数量:140左右
博客数量:1篇
今天主要完成了python实验一的内容
【题目描述】蒙特·卡罗方法是一种通过概率来得到问题近似解的方法,在很多领域都有重要的应用,其中就包括圆周率近似值的计问题。假设有一块边长为2的正方形木板,上面画一个单位圆,然后随意往木板上扔飞镖,落点坐标(x,y)必然在木板上(更多的时候是落在单位圆内),如果扔的次数足够多,那么落在单位圆内的次数除以总次数再乘以4,这个数字会无限逼近圆周率的值。这就是蒙特·卡罗发明的用于计算圆周率近似值的方法,如下图所示。编写程序,模拟蒙特·卡罗计算圆周率近似值的方法,输入掷飞镖次数,然后输出圆周率近似值。
【练习要求】请给出源代码程序和运行测试结果,源代码程序要求添加必要的注释。
【输入格式】在一行中输入掷飞镖的次数。
【输出格式】输出采用蒙特·卡罗法模拟计算出的圆周率的值。
【输入样例】100000
【输出样例】3.13056
import random n=int(input()) num=0 for i in range(n): x=random.random() y=random.random() if((x**2+y**2)**0.5)<1: num+=1 print(num*4/n)
【题目描述】1955年,卡普耶卡(D.R.Kaprekar)对4位数字进行了研究,发现一个规律:对任意各位数字不相同的4位数,使用各位数字能组成的最大数减去能组成的最小数,对得到的差重复这个操作,最终会得到6174这个数字,并且这个操作最多不会超过7次。请编写程序验证这个猜想。
【练习要求】请给出源代码程序和运行测试结果,源代码程序要求添加必要的注释。
【输入格式】在一行中输入一个任意各位数字不相同的4位数。
【输出格式】验证6174猜想,输出过程中计算得到的各数,数据间以空格为间隔。
【输入样例】2694
【输出样例】2694 7173 6354 3087 8352 6174
m=input('输入一个四位数:') max,min,n=10000,1000,0 while max-min!=6174 and max-min>=1000: n+=1 max=int("".join(sorted(m,reverse=True))) min=int("".join(sorted(m))) m=str(max-min) print(m) print(f'一共迭代了{n}次')
【题目描述】所谓LRU算法,是指在发生缺页并且没有空闲主存块时,把最近最少使用的页面换出主存块,腾出地方来调入新页面。
问题描述:一进程获得n个主存块的使用权,对于给定的进程访问页面次序,问当采用LRU算法时,输出发生的缺页次数。
【练习要求】请给出源代码程序和运行测试结果,源代码程序要求添加必要的注释。
【输入格式】在第一行中输入进程获得使用权的主存块数量n。
在第二行中输入进程访问页面的次序,各数据之间以空格为间隔。
【输出格式】输出对于给定的n和进程访问页面的次序,输出采用LRU算法时的缺页次数。
【输入样例】3
1 2 3 4 1 2 5 1 2 3 4 5
【输出样例】7
queue=[] count=0 piece=int(input()) process=input() page=process.split(" ") for i in range(0,len(page)): queue.append(page[i]) if i == len(page) - 1: break if len(queue)==piece:#长度为3开始查找 j=0 while j in range(0,piece): if page[i+1]==queue[j]: queue.append(queue[j]) #后面页面在前面页面中存在,将此页面提前 queue.pop(j) page.pop(i+1) #进入下一个页面 j=0 else : j+=1 queue.pop(0) count+=1 print(count)
【题目描述】输出n(0<n)行杨辉三角形,n由用户输入。
【练习要求】请给出源代码程序和运行测试结果,源代码程序要求添加必要的注释。
【输入格式】一行中输入1个整数n。
【输出格式】输出n行杨辉三角形,每个数的显示格式:占5位,右对齐。
【输入样例】3
【输出样例】 1 1
1 2 1
1 3 3 1
n = int(input()) triangle = [[1], [1, 1]] for i in range(2, n+1): first = [1] last = triangle[i - 1] for j in range(i - 1): first.append(last[j] + last[j + 1]) first.append(1) triangle.append(first) for i in triangle: for j in i: print('{0:>5}'.format(j), end="") print("")
等