python学习

用户输入整数n(1<=n<=26)和整数m(m<=n),然后输入n个不同的字母,请编写程序输出在这n个字母中选择m个字母的所有排列序列和组合序列。

"""
用户输入整数n(1<=n<=26)和整数m(m<=n),然后输入n个不同的字母,
请编写程序输出在这n个字母中选择m个字母的所有排列序列和组合序列。
"""
from itertools import combinations#引入组合模块
from itertools import permutations#引入排列模块

num1,num2 = input().split()
# 获取输入的数字
num1 = int(num1)
num2 = int(num2)
s = input()
# 获取输入的字母
# print("num1:%d  num2:%d"%(num1,num2))
# print(a)
list_1 = ""
for str in s.split():
    # print(str)
    list_1+=str

# print(list_1)
# print(list(permutations(list_1,num2)))
# 调用排列函数
print("Permutation:")
for i in list(permutations(list_1,num2)):
    # 循环输出
    list_per = ""
    for str in i:
        list_per += str
        list_per += " "
    print(list_per)
print("Combination:")
for i in list(combinations(list_1,num2)):
    # 排序
    list_com = ""
    for s in i:
        list_com+=s
    # 转化为list数组
    l = list(list_com)
    # 对list数组进行排序
    l.sort()
    # 重新加入字符串
    list_com = "".join(l)
    list_com_paixu = ""
    # 输出
    for str in list_com:
        list_com_paixu+=str
        list_com_paixu+=" "
    print(list_com_paixu)

输入掷飞镖次数,然后输出圆周率近似值

"""
输入掷飞镖次数,然后输出圆周率近似值
"""
# 引入随机数模块,可以获取随机数
import random

# 输入次数
num = int(input())
# 计数器,计算在圆里面的次数
num_in = 0

for i in range(num):
    # 随机获取0到2之间的浮点数
    x = random.uniform(0,2)
    y = random.uniform(0,2)
    # 计算两点间距离的平方
    distence = (x-1.0)*(x-1.0)+(y-1.0)*(y-1.0)
    # print(distence)
    if (distence<=1):
        num_in = num_in+1
rate_yuan = num_in/num
# 输出圆周率的计算值
print(rate_yuan*4)

使用各位数字能组成的最大数减去能组成的最小数,对得到的差重复这个操作,最终会得到6174这个数字,并且这个操作最多不会超过7次

"""
使用各位数字能组成的最大数减去能组成的最小数,对得到的差重复这个操作,最终会得到6174这个数字,并且这个操作最多不会超过7次
"""

# 输入四位数
num = input()

for i in range(10):
    # 循环到当num的值等于6174时退出
    if(int(num)==6174):
        break
    # print("第%d次:"%(i+1))
    # 获取最大值
    list_bigNum = list(num)
    list_bigNum.sort(reverse=True)
    bigNum = "".join(list_bigNum)
    # print(bigNum)
    # 获取最小值
    list_smallNum = list(num)
    list_smallNum.sort()
    smallNum = "".join(list_smallNum)
    # print(smallNum)
    value = int(bigNum) - int(smallNum)
    print(value)
    # 重新赋值
    num = str(value)

一进程获得n个主存块的使用权,对于给定的进程访问页面次序,问当采用LRU算法时,输出发生的缺页次数,在第一行中输入进程获得使用权的主存块数量n。 在第二行中输入进程访问页面的次序,各数据之间以空格为间隔。

"""
一进程获得n个主存块的使用权,对于给定的进程访问页面次序,问当采用LRU算法时,输出发生的缺页次数
在第一行中输入进程获得使用权的主存块数量n。 在第二行中输入进程访问页面的次序,各数据之间以空格为间隔。
"""

# 输入主存块数量
n = int(input())
# 输入进程访问次序
list_num = list(input().split())
list_block = ""
num = 0
for i in list_num:
    # print(i)
    if(list_block.__len__()<n):
        list_block+=i
    elif(i in list_block):
        # 当主存块中包含i时
        # 临时声明一个list,去除i
        list_pre = list(list_block)
        list_pre.remove(i)
        list_block = ‘‘.join(list_pre)
        list_block += i
    else:
        # 当不包含时,删除第一位
        num+=1
        list_pre = list(list_block)
        list_pre.remove(list_block[0])
        list_block = ‘‘.join(list_pre)
        list_block += i
print(num)
# str = str(3)
# print(str in list_block)