某次阿里笔试不会做的一道数学题【组合数学】

某次投了阿里算法岗玩,有一道题是这样的:

某张试卷有20题,做对一个得5分,做错一个得-3分,不做得0分。问:最后得分有几种情况?

随便写个程序暴力算一下即可。

那么如果范围比较大应该怎么办?

今天看《组合数浅谈》(王连笑著,哈尔滨工业大学出版社)里有讲解法。

设有n道题,评分标准如下:每道题答对得p分,答错扣q分,不答得0分,p, q ∈ N+, 且p, q互质,问:不同的成绩最多有几种?

题解:

设答对x题,答错y题,不答z题,那么显然 x+y <= n,直线左下角在第一象限内围成的区域。 

大概就这样....

用长为q宽为p的矩形在x+y <= n的区域内移动,矩形的左下角和右上角的得分是一样的(多对q道题并多错p道题抵消),则我们只需统计阴影区域整点的个数即可。

大三角形内整点个数-小三角形内整点个数即为解。

 水平不够啊....

原文地址:https://www.cnblogs.com/dirge/p/5975075.html