牛客网专项练习30天Pytnon篇第28天

简介: 牛客网专项练习30天Pytnon篇第28天

1.在不考虑计算机运行资源(如内存)的限制,以下 python3 代码的预期运行结果是:(B)

import math
def sieve(size):
    sieve= [True] * size
    sieve[0] = False
    sieve[1] = False
    for i in range(2, int(math.sqrt(size)) + 1):
      k= i * 2
      while k < size:
        sieve[k] = False
        k += i
    return sum(1 for x in sieve if x)
print(sieve(10000000000))

A.455052510


B.455052511


C.455052512


D.455052513


解析:  


      本题计算量较大可以尝试将数值减小,例如sieve(10)==4,sieve(100)==25,sieve(1000)==168;根据结果得知该题为求出100亿内的质数个数。判断n是不是素数,只需整除一遍2至n的算术平方根即可,如果出现整除的情况,则不是素数;可以认为因数是成对出现的,比如10就是分界点,所有成对的因数分布在10的左右,2到10的所有数就已经包含了所有可能的因数对。


2.下面的python3函数,如果输入的参数n非常大,函数的返回值会趋近于以下哪一个值:(B)

import random
def foo(n):
    random.seed()
    c1 = 0
    c2 = 0
    for i in range(n):
        x = random.random()
        y = random.random()
        r1 = x * x + y * y
        r2 = (1 - x) * (1 - x) + (1 - y) * (1 - y)
        if r1 <= 1 and r2 <= 1:
            c1 += 1
        else:
            c2 += 1
    return c1 / c2


A.4 / 3


B.(math.pi - 2) / (4 - math.pi)


C.math.e ** (6 / 21)


D.math.tan(53 / 180 * math.pi)


解析:


       以xy坐标轴(0,0)和(1,1)为圆心分别画两个圆,x,y取值范围为0≤x≤1,0≤y≤1,r1=x²+y² ,r2=(1-x²)+(1-y²),求两圆相交阴影占总面积比例:c1/c2=2*(Π/4-1/2)/1*1-2*(Π/4-1/2)=Π-2/4-Π。


3.当使用import导入模块时,按python查找模块的不同顺序可划分为以下几种:


①环境变量中的PYTHONPATH


②内建模块


③python安装路径


④当前路径,即执行Python脚本文件所在的路径


其中查找顺序正确的一组是:(C)


A.①④②③


B.②①④③


C.②④①③


D.①②③④


解析:


      Python搜索模块的顺序为:内建模块>当前路径,即执行Python脚本文件所在的路径>环境变量中的PYTHONPATH>python安装路径,故答案为C。


4.下列程序打印结果为:(B)

import re
str1 = "Python's features"
str2 = re.match( r'(.*)on(.*?) .*', str1, re.M|re.I)
print(str2.group(1))

A.Python


B.Pyth


C.thon’s


D.Python‘s features


解析:

     re模块正则匹配功能使用:re.match(正则表达式,要匹配的字符串,[匹配模式])。


正则表达式r'(.*)on(.*?).*'


r表示后面的字符串是一个普通字符串(比如\n会译为\和n,而不是换行符);


()符号包住的数据为要提取的数据,通常与.group()函数连用;


.匹配单个任意字符;


*匹配前一个字符出现0次或无限次;


?匹配前一个字符出现0次或1次;


(.*)提取的数据为str1字符串中on左边的所有字符,即Pyth;


(.*?)提取的数据为str1中on右边,空格前面,即's;


.group(0)输出的是匹配正则表达式整体结果;


.group(1) 列出第一个括号匹配部分;


.group(2) 列出第二个括号匹配部分。


5.以下这段代码的输出结果为:(D)

import numpy as np
a = np.repeat(np.arange(5).reshape([1,-1]),10,axis = 0)+10.0
b = np.random.randint(5, size= a.shape)
c = np.argmin(a*b, axis=1)
b = np.zeros(a.shape)
b[np.arange(b.shape[0]), c] = 1
print(b)

A.Hello World!


B.一个 shape = (5,10) 的随机整数矩阵


C.一个 shape = (5,10) 的 one-hot 矩阵


D.一个 shape = (10,5) 的 one-hot 矩阵


解析:


      repeat(np.arange(5).reshape([1,-1]), 10, axis = 0)首先np.arange(5),生成一数组[0,1,2,3,4],reshape([n,-1])意思是将原数组重组为n行x/n列的新数组,所以数组共有5个元素,重组为1行5列的数组,因为axis=0,所以是沿着横轴方向重复,增加行数,所以原数组增加10行,数组每个元素都+10;随机生成大小为a.shape的数组,数组元素为[0,5)区间范围的整数;a*b组成的新数组,给出每行最小值的下标;生成a.shape大小的全零数组;b.shape[0]表示b的行数,b[np.arange(10), c]=1表示np.arange(10)生成的数组中,所有c对应的位置全置为1。


相关文章
|
人工智能 算法 搜索推荐
题库管理|考试管理|基于Web的大学生题库管理系统的设计与实现
题库管理|考试管理|基于Web的大学生题库管理系统的设计与实现
659 0
|
2月前
|
人工智能 搜索推荐 小程序
AI题库考试系统
本平台融合AI智能技术,打造高效课程试题库,支持PC、手机在线刷题,提供智能出题、自动解析、错题回顾、背题模式等功能,覆盖章节练习、笔记收藏、多端同步,助力学员精准提分,全面提升学习效率。
|
3月前
|
算法 IDE 开发工具
蓝桥杯备赛经验帖
本文是作者blue分享的蓝桥杯备赛经验帖,旨在帮助刚接触算法竞赛的新手。文章从个人参赛经历出发,详细介绍了蓝桥杯的OI赛制特点、比赛流程以及备赛建议。作者强调了重点掌握基础数论、DFS、数组操作、二分法、动态规划等知识,并建议多参与线上赛,熟悉输入输出规则,同时避免盲目刷题或过度依赖力扣。通过参赛,作者不仅提升了编码能力,还结识了优秀的朋友,认识到自身差距,激励自己不断进步。此经验适合新手参考,大佬可略过。
265 4
|
3月前
|
存储 安全 Java
2025 年 Java 秋招面试必看的 Java 并发编程面试题汇总
文章摘要: 本文系统梳理Java并发编程核心知识点,助力2025年秋招面试。内容涵盖:1)基础概念,包括线程/进程区别、创建线程的3种方式(Thread/Runnable/Callable)、6种线程状态及转换;2)关键机制,对比sleep()与wait()的锁行为差异,解释start()而非run()启动线程的原因;3)工具类与典型应用场景。通过技术原理与代码示例结合的方式,帮助开发者深入理解并发模型、线程同步等核心问题,为高并发系统设计打下坚实基础。(150字)
205 0
|
11月前
|
存储 JavaScript 前端开发
使用JavaScript构建动态交互式网页:从基础到实践
【10月更文挑战第12天】使用JavaScript构建动态交互式网页:从基础到实践
495 1
|
运维 监控 Devops
DevOps文化下的企业运维转型
【8月更文挑战第22天】在数字化转型的浪潮中,DevOps不仅仅是一种技术实践,更是一种企业文化。本文将探讨如何在DevOps文化的引导下,实现企业运维的高效转型,包括理念更新、流程优化和团队协作等方面。我们将一起思考如何打破传统壁垒,构建一个更加灵活、高效和协同的运维体系,以应对不断变化的市场和技术挑战。
155 1
|
8月前
|
安全 Java 程序员
面试直击:并发编程三要素+线程安全全攻略!
并发编程三要素为原子性、可见性和有序性,确保多线程操作的一致性和安全性。Java 中通过 `synchronized`、`Lock`、`volatile`、原子类和线程安全集合等机制保障线程安全。掌握这些概念和工具,能有效解决并发问题,编写高效稳定的多线程程序。
227 11
|
9月前
|
人工智能 自然语言处理 前端开发
CodeArena:在线 LLM 编程竞技场!用于测试不同开源 LLM 的编程能力,实时更新排行榜
CodeArena 是一个在线平台,用于测试和比较不同大型语言模型(LLM)的编程能力。通过实时显示多个 LLM 的代码生成过程和结果,帮助开发者选择适合的 LLM,并推动 LLM 技术的发展。
217 7
CodeArena:在线 LLM 编程竞技场!用于测试不同开源 LLM 的编程能力,实时更新排行榜
|
11月前
|
SQL 测试技术 数据库
如何设计一个交互式网站?
【10月更文挑战第7天】如何设计一个交互式网站?
251 4
|
运维 监控 安全
DevOps转型之路:从传统运维到自动化运维的演进
【7月更文挑战第25天】本文旨在探讨DevOps文化和实践如何影响并转变传统的运维模式,通过分析自动化运维的优势与挑战,提供实施自动化运维的策略和方法。文章将结合案例分析,展示自动化运维在提升效率、保障稳定性以及促进团队协作方面的实际成效,为读者提供一条清晰的DevOps转型路径。
187 4