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("")

posted @ 2024-05-13 22:00  伐木工熊大  阅读(9)  评论(0编辑  收藏  举报