zoukankan      html  css  js  c++  java
  • python20.04.10

    【Python0002】排列组合序列 (10分)
     

    【题目描述】

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

    import itertools
    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()

    【Python0003】蒙特·卡罗法计算圆周率 (10分)
     

    【题目描述】

    蒙特·卡罗方法是一种通过概率来得到问题近似解的方法,在很多领域都有重要的应用,其中就包括圆周率近似值的计问题。假设有一块边长为2的正方形木板,上面画一个单位圆,然后随意往木板上扔飞镖,落点坐标(x,y)必然在木板上(更多的时候是落在单位圆内),如果扔的次数足够多,那么落在单位圆内的次数除以总次数再乘以4,这个数字会无限逼近圆周率的值。这就是蒙特·卡罗发明的用于计算圆周率近似值的方法,如下图所示。编写程序,模拟蒙特·卡罗计算圆周率近似值的方法,输入掷飞镖次数,然后输出圆周率近似值。

    from random import random
    
    times = int(input('请输入投掷飞镖次数'))
    hist = 0
    for i in range(times):  # range 生成一个连续数字序列
        x = random()  # 生成随机数
        y = random()
        if x * x + y * y < 1:
            hist += 1
    print(4.0 * hist / times)

    【Python0004】验证6174猜想 (10分)
     

    【题目描述】

    1955年,卡普耶卡(D.R.Kaprekar)对4位数字进行了研究,发现一个规律:对任意各位数字不相同的4位数,使用各位数字能组成的最大数减去能组成的最小数,对得到的差重复这个操作,最终会得到6174这个数字,并且这个操作最多不会超过7次。请编写程序验证这个猜想。

    a = input()
    a = int(a)
    i = 0
    l = []
    cha = 0
    
    b = a%1000                                 #求出百十个位
    max4 = (a - b)/1000                    #求出千位
    d = b%100                                  #求出十个位
    max3 = (b - d)/100                     #求出百位
    max1 = d%10                            #求出个位
    max2 = (d - max1)/10                #求出十位
    l.append(max4)
    l.append(max3)
    l.append(max2)
    l.append(max1)
    l.sort()
    max1 = int(l[0])                          #最小值
    max2 = int(l[1])
    max3 = int(l[2])
    max4 = int(l[3])                          #最大值
    
    while cha != 6174 :
        i = i + 1
        summax = max4 * 1000 + max3 * 100 + max2 * 10 + max1
        summin = max1 * 1000 + max2 * 100 + max3 * 10 + max4
        cha = summax - summin
        baishige = cha%1000                                                             #求出百十个位
        max4 = (cha - baishige)/1000                                                 #求出千位
        shige = baishige%100                                                            #求出十个位
        max3 = (baishige - shige)/100                                                #求出百位
        max1 = shige%10                                                                   #求出个位
        max2 = (shige - max1)/10                                                      #求出十位
        l = []
        l.append(max4)
        l.append(max3)
        l.append(max2)
        l.append(max1)
        l.sort()
        max1 = int(l[0])            #最小值
        max2 = int(l[1])
        max3 = int(l[2])
        max4 = int(l[3])            #最大值
        print(cha)

  • 相关阅读:
    并发编程-process对象的其他属性方法
    Python json格式处理
    msf制作反弹shell
    Windows渗透备忘录
    WPF listbox实现多列显示数据
    Postgresql插入或更新操作upsert
    Windows 10 IoT Core Samples
    物联网平台开源
    实现领域驱动设计
    wpf Visibility 动画
  • 原文地址:https://www.cnblogs.com/zjm15511858030/p/12671832.html
Copyright © 2011-2022 走看看