首页 > 试题广场 >

数理逻辑

[问答题]
某次数学竞赛共有10道选择题,评分办法是每一题答对一道得4分,答错一道扣1分,不答得0分.设这次竞赛最多有N种可能的成绩,则N应等于多少?
用Python写了一个通用的算法😂,用的是递归。答案应该是:45个。
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 35, 36, 40, -2, -9, -8, -7, -6, -5, -4, -3, -1, -10

SCORE=[4,-1,0]
allScores=set()
N=10

def Cal_score(curSum,layer):
	if layer==N+1:
		return None
	for x in SCORE:
		thisSum=x+curSum
		allScores.add(thisSum)
		Cal_score(thisSum,layer+1)

Cal_score(0,1)
print(allScores)
print('所有可能的结果有:%s个'%len(allScores))


发表于 2020-08-08 17:14:57 回复(0)
最大40,最小-10,区间一共有50种,但是当有10个4时不可能出现-1,所以39,38,37不能出现,有9个4时,最多1个-1,所以34,33不能出现,有8个4时最多两个-1,所以29不能出现,其余区间值都能出现,所以是44个。如果不考虑负值就是34个
编辑于 2021-08-29 10:12:51 回复(0)
不能取到的值应该是29、33、34、37、38、39
发表于 2019-08-26 21:38:18 回复(0)