学习目标:
因为快数学考试了,写完作业就哦弥陀佛了
学习内容:
歌德巴赫猜想
歌德巴赫猜想指出:任何一个大于2的偶数,都可以表示成两个素数的和。
然后又有人提出了另一方面的歌德巴赫猜想:大于5的所有奇数均是三个素数之和。
但对于在一个较小范围验证歌德巴赫猜想可以算作对一个查找算法的优化:
- 判断剪枝
- 查询: int(目标数据) 减 min(“素数且未被匹配”) == 素数
- continue
First:
因为进行数据匹配需要大量的比较和计算,所以我们可以先建立一个素数表list1
listOne = []
n=3
while n<1000000:
sign = 0
for m in range(2,n):
if n % m == 0:
sign = 1
break
if sign == 1:continue
else:
listOne.append(n)
n += 1
Second:
如果需要对所有可能进行列举,最好再建立一个结果列表。但如果只输出最小(最大)匹配值,那么可以在穷举比较成功后直接输出:
a=int(input())
i = 0
another = 1000000
while i < another:
another = a - listOne[i]
sign = 0
for j in range(2,another):
if another % j == 0:
sign = 1
break
if(sign == 0):
print(a," = ",listOne[i]," + ",another)
break
else:
i += 1
但在此处还可以优化:
当数据的大小进一步增大时,对匹配值的查找的用时直线增长。在这里可以小小地加一个二分法查找算法。同时还可以用图解的方法进行数据优化(见下方链接👇)。
*这里有一个图解和深入分析的好玩文章
Third:
最后插一句:对事先做好的素数表在空间允许的情况下可以做成离散列表。算是一个简单的摸鱼小技巧(特别是你还需要对目标数据进行别的操作时)
矩阵乘法:
矩阵乘法的核心要点有两个:
- 不遵循交换律
- A * B = C 中:
C ( i , j ) = A ( i , 1 ) × B ( 1 , j ) + A ( i , 2 ) × B ( 2 , j ) + . . . A ( r , 1 ) × B ( r , j )
矩阵 C 的第 i 行第 j 列元素 = 矩阵 A 的第 i 行元素与矩阵 B 的第 j 列对应元素乘积之和。
n,p,m = map(int, input().split())#在一行内输入多个数字,空格隔开
listA = []
listB = []
for i in range(0,n):#建立A矩阵
ans=[int(j) for j in input().split()]
listA.append(ans)
listB=[]
for i in range(0,p):#建立B矩阵
ans=[int(j) for j in input().split()]
listB.append(ans)
listNew = [[0 for j in range(0,m)] for i in range(0,n)]
for i in range(0,n):
for j in range(0,m):
for l in range(0,p):
listNew[i][j]+=listA[i][l]*listB[l][j]
# 每个数模 10 ^ 9 + 7 输出?为什么用例里面只有负数+7了?
for i in range(0,n):
for j in range(0,m):
# if listNew[i][j]<0:
listNew[i][j] = listNew[i][j]%1000000000+7
# 虽然但是,在作业提交中不管我用什么个方法都是输出了正确数据但显示我wrong
for i in range(0,n):
for j in range(0,m-1):
print(listNew[i][j],end = ' ')
print(listNew[i][m-1],end = ' \n')
额外完成:
为什么文明6又卡bug啊!!!!!!!2k你 @#¥……¥……%#*&……
所以,在查找问题时记录下来了一个开发易犯的问题:
由于文明6也是用python开发的,所以才加在了这里。2k工作室发布了11月活动后的更新后很有可能没有对活动的界面同步,在更新的同时撤销了活动。但它并没有把用户本地的活动界面的发布器关掉,只是撤离了online上的图文。而这个活动的界面对开始面板有调位行为,导致一个“空图”把开始界面拦截了。
解决方案是在steam讨论区去领一个专门关掉活动界面的发布器的mod,在界面加载前,文件配置时把这个活动做掉。
我觉得这个玩得挺有意思的,下次有时间自己再敲一个出来。最搞笑的是:2K官方竟然给出的置顶解决方案是删掉dlc并重装?!辣鸡2K狗都不用
学习时间:
2023.11.22~2023.11.25