Python蓝桥杯 复盘历届难题 备战(2)

简介: Python蓝桥杯 复盘历届难题 备战


问题分析:不妨包含这N个整数的最短的等差数列有n项,且公差为d


项数n=(最大的-最小的)/d+1 要使得n最小,最大的和最小的数字已经由题目给定,那么问题转化为求d最大的问题


下面举个例子 2 4 6 10 20(排序好了)  相邻两项的差值分别为2 2 4 10


由于这串数据是从等差数列取得,因此任意差值一定是d的倍数


设每个差值是公差的k倍(k>=1),因此差值可以表示为kd>=d


所以对于例子,我们可以列出d<=2,d<=2,d<=4,d<=10


所以d的一个必要条件:s代表相邻两项差值组成的集合,d<=min(s)


强调,为什么是必要条件而不是充分条件:原因在于当d=min(s),未必能构成等差数列,比如1 3 8 ,d<=2 但d的最大值是1


观察两组数据seq=[2,4,6,10,20] d=[2,2,4,10]  dmax=2


seq=[1,3,8] d=[2,5]  dmax=1 我们不妨考虑数组d,里面有N个数据,猜测dmax=N个数据的最大公约数(确实是基于猜测,完整的数学证明还请高手指教)


下面问题就转化为求N个数据的最大公约数:


对于求两个数的gcd,我们已经掌握,那么求N个数字的gcd,我们可以采用递归。


求N个数字的gcd(数字存在列表当中)板子:

def gcd(a,b):
    while b:
        a,b=b,a%b
    return a
def multi_gcd(array):
    l = len(array)
    if l == 1:#基线条件
        return array[0]
    elif l == 2:#基线条件
        return gcd(array[0], array[1])
    else:#递归
        return gcd(multi_gcd(array[:l//2]), multi_gcd(array[l//2:]))
#就是假定左半边的和右半边的是可以求出来的,然后一级一级分下去。

真题训练3: >>考察几何逻辑(填空压轴)


image.png


答案1391


问题分析:我们可以通过数学递推的手段(找规律),读者请务必作图!


要研究n条直线0个圆最多划分的区域,设递归式为a[n][m]:


那么先研究n条直线0个圆的情况a[n][0],由于研究划分最多的区域,因此交点尽可能多。


容易知道,第n条直线与前n-1条直线至多有n-1个交点。因此作图


可发现规律a[n][0]=2+(2+3+4...+n)


然后研究n条直线1个圆的情况a[n][1],由于研究划分最多的区域,因此交点尽可能多。容易知道,1个圆与1条直线至多有2个交点,因此作图


可发现规律a[n][1]=4+(4+5+....n+2)


然后研究n条直线2个圆的情况a[n][2],作图可知


可发现规律a[n][2]=8+(6+7+....n+4)


然后这里容易出错(第一个数字并非是2的指数次幂),找规律一般需要3个以上


同理得a[n][3]=14+(8+...n+6)


观察每种情况的首项,相邻项作差得到2,4,6...可得a[n][m]展开后的首项为m(m+1)+2


后半部的等差数列,首项排列(2,4,6,8...),可得等差数列首项为2(m+1)


等差数列最后一项和第一项始终保持差值n-2,因此


a[n][m]=m(m+1)+2 +[2(m+1)+........2(m+1)+n-2]


可得答案1391


我是小郑 正在奔赴热爱 奔赴山海! 如果喜欢麻烦给个三连~


目录
相关文章
|
7月前
|
Python
【备战蓝桥杯】——循环结构
【备战蓝桥杯】——循环结构
60 1
|
2月前
|
Python
蓝桥杯练习题(一):Python组之入门训练题
这篇文章是关于蓝桥杯Python组的入门训练题,包括Fibonacci数列、圆的面积、序列求和和A+B问题的具体代码实现和样例输出。
149 0
|
2月前
|
存储 机器学习/深度学习 算法
蓝桥杯练习题(三):Python组之算法训练提高综合五十题
蓝桥杯Python编程练习题的集合,涵盖了从基础到提高的多个算法题目及其解答。
128 3
蓝桥杯练习题(三):Python组之算法训练提高综合五十题
|
2月前
|
人工智能 Python
蓝桥杯练习题(四):Python组之历届试题三十题
关于蓝桥杯Python组历届试题的三十个练习题的总结,包括题目描述、输入输出格式、样例输入输出以及部分题目的解题思路和代码实现。
51 0
蓝桥杯练习题(四):Python组之历届试题三十题
|
2月前
|
存储 机器学习/深度学习 算法
蓝桥杯练习题(二):Python组之基础练习三十题
蓝桥杯Python编程练习题的集合,包含了三十个不同难度的编程题目,覆盖了基础语法、数据结构和算法等领域。
53 0
|
6月前
|
Java API
备战第十五届蓝桥杯Java软件开发大学B组常见API记录
备战第十五届蓝桥杯Java软件开发大学B组常见API记录
49 0
|
7月前
|
算法 安全 定位技术
【刷题】备战蓝桥杯 — dfs 算法
dfs算法在数据较小的情况下可以使用。 一定一定要确定好终止条件,避免栈溢出。 相应做好回溯,保证每次的遍历都是不一样的选择,避免少结果。 针对题目进行对应细节处理,有能力的话可以进行剪枝优化!!!
85 0
|
7月前
蓝桥杯备战刷题-滑动窗口
蓝桥杯备战刷题-滑动窗口
64 0
|
7月前
|
索引 Python 容器
【备战蓝桥杯】探索Python内置标准库collections的使用
【备战蓝桥杯】探索Python内置标准库collections的使用
103 1
|
25天前
|
人工智能 数据可视化 数据挖掘
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!