A.a[0]到a[7]升序排序 | B.a[4]到a[7]升序排序 |
C.a[0]到a[7]的数据对4取余之后升序排序 | D.a[0]到a[3]、a[4]到a[7]分别升序排序 |
A.['a','b','c','d','h'] | B.['a','b','c','d','d'] |
C.['c','d','b','h','a'] | D.['a','d','d','d','a'] |
编写程序模拟有n(n=9)节车厢的“入轨”和“出轨”过程,(入轨车厢次序满足缓冲轨为3的情况)。车厢可以从入轨的前部移动到一个缓冲轨的顶部或者是出轨处的后部。进入缓冲轨的车厢编号要满足:
def inputStack(bh,stacks,n): # 将车厢移到缓冲轨处
global minNum, minStack,k
bestStack = -1 # bestStack 记录最小车厢编号所在的缓冲轨编号
bestTop = n + 1 # bestTop 记录缓冲轨中的最小车厢编号
for i in range(k):
if len(stacks[i])>0:
top = stacks[i][-1]
if
bestTop = top
bestStack = i
else:
if bestStack == -1:
bestStack = i
if bestStack == -1:
return False
stacks[bestStack].append(bh)
print('将 %d 号车厢从入轨处移到缓冲轨道 H%d 处。' % (bh, bestStack+1))
if bh < minNum:
minNum = bh
minStack = bestStack
return True
def output(stacks,n):
# 将缓冲轨中的剩余车厢按顺序依次移到出轨处,代码略
# 主程序开始
list = [3,6,9,2,4,7,1,8,5] #车厢的原始编号存放在列表 list 中
n = len(list)
k = 3
hStacks=[
curBH=1
minStack = -1
print("车厢重排过程如下:")
i=0
while i < n:
if list[i] == curBH:
print("将 %d 号车厢从入轨处直接移到出轨处。" % list[i])
i += 1
continue
while True:
minNum = n + 1
for j in range(k):
if len(hStacks[j]) > 0:
if hStacks[j][-1] < minNum:
minNum = hStacks[j][-1]
minStack=j
if minNum == curBH:
print("将%d号车厢从缓冲轨道H%d移到出轨处。" %(minNum,minStack+1))
hStacks[minStack].pop()
curBH += 1
else:
i += 1; break
while curBH<n+1:
output(hStacks,n); curBH += 1
print("完成车厢重排!")
![]() 图 1 | ![]() 图 2 |
import pandas as pd
def read_file(filename):
#读入报名数据的原始文件,并将表中的数据转换成列表,代码略
def save_file(a): #保存名单到相应社团的 Excel 电子表格文件
df = pd.DataFrame(a,columns=[“班级”,“姓名”,“选报社团”])
df.to_excel
a = read_file(“社团报名.xlsx”)
n = len(a)
# 按社团名(参照拼音的字母顺序)进行升序排序,代码略
# 统计各社团人数,存在列表 rs 中,rs=[[“滑板社”,36],…],代码略
s = 0
for i in range(len(rs)):
left,right = s, s+num-1
while left < right:
imin = imax = left
for k in range(left+1,right+1):
if a[k][0] < a[imax][0]:
imin = k
elif a[k][0] > a[imax][0]:
imax = k
if imin != left:
a[imin],a[left] = a[left],a[imin]
if imax == left:
if imax != right:
a[imax],a[right] = a[right],a[imax]
left = left + 1; right = right–1
s += num
图 a
图b 图 c
def find(name,user):
#代码略
def simalar(music,data,k): #计算相似度
xsd=[0]*len(data)
for i in range(len(data)):
ms1=ms2=0
for j in range(len(music)):
if k!=i:
if data[k][j]>0 and data[i][j]>0:
ms1+=1
if
ms2+=1
if ms2>0:
xsd[i]= ms1/ms2
return xsd
music=["《孤勇者》 ","《Hug me》","《后会无期》 ","《NUNA》","《蜗牛》 "," 《心墙》 ","《对你说》 ","《与天齐》 ","《栀子花开》"," 《风吹半夏》"]
user=["HelloK","sime32","yigoo","lucky", "halibo","baby","HaiT","bao_66"] #读取听歌行为的量化数据存入data列表,如图c所示
name=input("请输入您的用户名:")
k=find(name,user) #调用 find 函数返回该用户在 data 列表中的索引号
xsd=simalar(music,data,k) #xsd[0]表示 0 号用户与 k 号待推荐用户的相似度
maxm=0
for i in range(len(data)):
for j in range(len(music)):
if data[k][j]==0 and data[i][j]>0:
like=
if like>maxm:
maxm=like
p=j
print("为您推荐的歌曲是:",
图 a | 图b | 图 c |
实现上述功能的Python代码如下:
#导入库, 代码略
img=np.array(Image.open ("hz.png").convert("L")) #将图像转换为二维矩阵
rows,cols=img.shape #图像尺寸分别赋值,rows表示行数,cols表示列数
for i in range(rows):
for j in range(cols):
if
img[i,j]=1
else:
img[i,j]=0
plt.imshow(img,cmap="gray") #显示灰度图像
plt.show () #弹出包含了图片的窗口
c=img[0,0]; cnt=0; ys=[]
for i in range(rows):
for j in range(cols):
if img[i,j]==c:
______
else:
ys.append(cnt*10+c)
cnt=1
ys.append(cnt*10+c)
print(ys)
图 d
A.img[i,j]>210 B.img[i,j]>140 C.img[i,j]<140 D.img[i,j]<210
A.图中有5个对象,分别属于3个不同的类 |
B.图中计算1、Text1等字符为类的名称 |
C.图中有6个对象,分别属于4个不同的类 |
D.图中计算1、Text1等字符为对象的名称 |
n=int(input())
a=1;q=[0]*100;two=three=rear=0;q[0]=a
while rear!=n:
if(2*q[two]+1>3*q[three]+1):
rear+=1
q[rear]=3*q[three]+1
three+=1
elif(2*q[two]+1<3*q[three]+1):
rear+=1
q[rear]=2*q[two]+1
two+=1
else:
rear+=1
q[rear]=3*q[three]+1
two+=1;three+=1
A.15 | B.22 | C.27 | D.31 |
qyn=8
#区域数量
psryn=30
#配送人员数量
rs=round(len(a)/psryn)
b=[]
for i in range(qyn):
c=chr(i+65) # “A”的Ascii码值是65
b.append([c,0,0]) #生成二维列表b=[[‘A’,0,0],[‘B’,0,0]……]
for i in a:
s=0
for i in range(qyn):
If b[i][1]%rs!=0:
b[i][2]+=1
s+=b[i][2]
k=s-psryn
i=0
while k>0:
for j in range(qyn-1,i,-1):
b[j-1],b[j]=b[j],b[j-1] q
if b[i][2]>1:
b[i][2]-=1
k-=1
i+=1
小写字母 | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z |
密文串 | j | p | g | n | t | k | w | m | a | e | r | y | l | d | c | q | f | i | x | u | h | z | b | o | v | s |
数字 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
旋转次数 | 1 | 2 | 3 | 1 | 2 | 3 | 1 | 2 | 3 |
for i in range(k):
temp=array[len(array)-1]
for j in range
array[j+1]=array[j]
array[0]=temp
a.append([]) #append():在列表末尾添加元素
for j in range(3):
a[i].append( dic[] )
keynum=
k=(keynum-1)%3+1
rotate(a[i],k)
for j in range(3):
ans+="*"*(i+1)