首页 > 编程语言 >洛谷 官方题库 Python 第十一天

洛谷 官方题库 Python 第十一天

时间:2024-04-10 18:29:52浏览次数:16  
标签:第十一天 triangle gcd Python 质数 矩阵 range print 题库

【数学1】基础数学问题

最大公约数gcd = math.gcd(a,b)

注意这个gcd支持传入多参数,有两种写法,建议用星号,因为reduce如果a是空数组会报错。
注意gcd(a,0)=a,即任意数和0的gcd都是自己,参照循环相减法。

gcd(*a)是Python中的一种用法,它可以计算传递给函数gcd()的可变数量的参数的最大公约数。这里*a表示将列表a解包成函数的参数,使得gcd()函数可以接受任意数量的参数。

from math import gcd
a = [12, 18, 24, 36]
result = gcd(*a)
print("列表中所有元素的最大公约数为:", result)
最小公倍数lcm = math.lcm(a,b)

写法和gcd类似。

from math import lcm
a = [12, 18, 24, 36]
result = lcm(*a)
print("列表中所有元素的最小公倍数为:", result)
质数筛法:埃氏筛O(nlgn)、线性筛O(n)(欧拉筛)
n = 10**3 # 代求的范围中的最大值
k = 0
s = [True for i in range(n)]  # 首先默认所有数都是质数
z = []
for i in range(2,n):
    if s[i]:  # 判断是否为质数,如果没有被标记过,就是质数
        k+=1
        z.append(i) #添加质数
        for j in range(i+i,n,i):   # 将是指数的倍数的数都改为False
            s[j] = False

print(k) # 个数
print(z) # 质数

杨辉三角

定义法

思路:

从第三行开始,每一行的首尾都是1,中间部分每个数字等于上一行的左右两个数字之和。先定义每一行的第一个数字,然后在利用规则对中间部分进行运算,最后再添加最后一个元素。

# 用户输入要打印的行数
n = eval(input("输入要打印的行数:"))

# 创建一个二维列表triangle,用于存储杨辉三角的每一行。前两行已经给出。
triangle = [[1], [1, 1]]

# 使用两层循环生成剩余的行数
for i in range(2, n):  # 外层循环遍历从第三行到第n行
    pre = triangle[i-1]  # 上一行
    cul = [1]  # 定义每行第一个元素
    for j in range(i-1):  # 内层循环用于计算当前行的元素
        cul.append(pre[j]+pre[j+1])  # 每个数字等于上一行的左右两个数字之和,并将结果添加到当前行中
    cul.append(1)  # 添加每行最后一个元素
    triangle.append(cul)

# 按普通输出格式打印生成的杨辉三角
print("普通输出:{}".format(triangle))

# 再次遍历生成的杨辉三角,按等边三角形格式输出
for i in range(n):
    s = " "*(n-i-1)
    for j in triangle[i]:
        s = s + str(j)+" "
    print(s)

幂运算

快速幂

def quick_count(a, b):
    sum = 1
    while b != 0:
        if b & 1:
            sum = sum * a % p
        b >>= 1
        a *= a  # 注意是x自身,容易写成x^2
    return sum

eg:

【题目描述】 给定 bpk ,求 ( b p ) mod k 。其中 2 ≤ b , p , k ≤ 10 9 。 【输入描述】 输入 3 个整数 b p k 。 【输出描述】 输出 ( b的 p次方  ) mod k 的值。
def fastPow(a, n, mod):
    ans = 1
    while n:
        if n & 1:
            ans = ans * a % mod
        a = a * a % mod
        n >>= 1
    return ans

b, p, k = map(int, input().split())
print(fastPow(b, p, k))

##int:2 10000000 1000000007
##out:255718402

矩阵乘法

( 1 )一个数 k 乘矩阵 A ,就是把 k 乘以矩阵的每个元素,记为 k A 。 ( 2 )两个矩阵 AB 相乘,要求 A 的列数等于 B 的行数,设 A m × n 的矩阵, B n × u 的矩阵,那么乘积 C = AB m × u 的矩阵。定义矩阵乘法 C = AB 。
for(int i=1;i<=m;i++) //注:i、j、k 的先后顺序不重要,因为对于 c[][]来说都一样
 for(int j=1;j<=u;j++) 
 for(int k=1;k<=n;k++) 
 c[i][j] += a[i][k] * b[k][j]);

标签:第十一天,triangle,gcd,Python,质数,矩阵,range,print,题库
From: https://blog.csdn.net/2301_76665528/article/details/137542519

相关文章

  • 利用python将文字转语音
    一、安装官方建议要先装pypiwin32,选择合适版本就行。python环境是3.6,这是win10中可用的地址:https://pypi.org/project/pyttsx3/2.7/#files最新版本的pyttsx3是2.90,https://pypi.org/project/pyttsx3/2.90安装后会报错,Collectingcomtypes;platform_system=="Windows"(fro......
  • python爬虫—学习笔记-3
    python爬虫—学习笔记-3ps:因为本人近一个月住院,文章为队友所著。此次学习内容为如何搭建服务器1.打开pycharm,创建目录server在设置中的Python解释器中安装Flask2.在创建的server1中输入本节课所学代码在网页中输入ip端口号子目录本机访问127.0.0.1:5000/子目录外部......
  • python爬虫—学习笔记-2
    python爬虫—学习笔记-2ps:因为本人近一个月住院,文章为队友所著。任务获取豆瓣网站内容。单页获取网址:https://movie.douban.com/top250获取网页信息代码:importrequestsurl="https://movie.douban.com/top250"headers={"User-Agent":"Mozilla/5.0(WindowsNT10.0;......
  • 【Python】深入探究:if、elif、else语句如何塑造Python代码的逻辑魅力
    欢迎来CILMY23的博客本篇主题为深入探究:if、elif、else语句如何塑造Python代码的逻辑魅力个人主页:CILMY23-CSDN博客个人专栏系列:Python|C语言|数据结构与算法|C++感谢观看,支持的可以给个一键三连,点赞关注+收藏。 写在前头:本篇博客主要对各种的条件语句进行详......
  • Python环境配置和开发工具
    1.Python环境配置网址:https://www.python.org环境测试1.打开运行框(快捷键win+r),输入cmd,如下:2.打开命令提示符程序,输入python,出现下图:则python环境配置完成。如果出现以下提示:则大概率为python安装时,未进行环境配置(PATH),可选择重新安装python,或了解环境配置相关内容进......
  • Python包和模块
    Python中的模块和包是用于组织代码的关键构造。它们可以帮助你将代码逻辑划分成可管理的部分,防止命名空间(namesspace)的冲突,并提供分享和重用代码的方式。一、模块模块是一个包含Python代码的文件。模块的名称就是文件的名称(不包含后缀.py)模块可以包含定义的函数,类,变量,也可......
  • python收到MQTT消息后再发http请求
    python收MQTT消息和 发http请求的代码在前面的文章都有介绍,这里直接上完整的功能代码mqtt2http.py#python3.6importloggingimportrandomimporttimeimportrequests#frompaho.mqttimportclientasmqtt_clientimportpaho.mqtt.clientasmqttBROKER='......
  • python 使用waitress替代flask自带的web服务器
    首席引入依赖安装waitrsspipintsllwaitress 然后在flask程序内引入依赖使用server()函数代替app.run()函数启动时,直接pythonxxx.py即可fromwaitressimportservefromflaskimportFlaskapp=Flask(__name__)@app.route('/')defhello_world():return'HelloWor......
  • python paramiko_具有连续标准输出,非一次性读全
    如何完全读取Paramiko通道的缓冲区?要完全读取Paramiko通道的缓冲区,可以使用以下代码:importparamikossh=paramiko.SSHClient()ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())ssh.connect('hostname',username='user',password='pass')stdin,st......
  • python收到MQTT消息后写入mySQL
    python收MQTT消息和写mySQL的代码在前面的文章都有介绍,这里直接上完整的功能代码mqtt2mysql.py#python3.6importloggingimportrandomimporttimeimportmysql.connector#frompaho.mqttimportclientasmqtt_clientimportpaho.mqtt.clientasmqttBROKER......