5. 【竞赛】“3+1+2”新高考选考科目问题

【问题描述】2020年,河北等省份实行"3+1+2"新高考制度。其中"3"指语文、数学和外语,为必考科目;"1"是历史和物理二选一作为考试科目;"2"是指地理、政治、化学和生物这4门科目四选二作为考试科目。请编写程序,计算某考生共有多少种可能的选考方案,并列举所有选考方案。

【输入形式】

【输出形式】用print()函数

【样例输入】

【样例输出】

共有12种选考方案:

语文,数学,外语,物理,化学,生物

语文,数学,外语,物理,政治,生物

语文,数学,外语,物理,政治,化学

语文,数学,外语,物理,地理,生物

语文,数学,外语,物理,地理,化学

语文,数学,外语,物理,地理,政治

语文,数学,外语,历史,化学,生物

语文,数学,外语,历史,政治,生物

语文,数学,外语,历史,政治,化学

语文,数学,外语,历史,地理,生物

语文,数学,外语,历史,地理,化学

语文,数学,外语,历史,地理,政治

【样例说明】

【评分标准】

python 复制代码
import itertools

required = ['语文', '数学', '外语']
subjects_1 = ['物理', '历史']
subjects_2 = ['地理', '政治', '化学', '生物']

combs = list(itertools.combinations(subjects_2, 2))
combs_reversed = combs[::-1]

schemes = []
for s1 in subjects_1:
    for c in combs_reversed:
        scheme = required + [s1] + list(c)
        schemes.append(scheme)

print("共有12种选考方案:\n")
for s in schemes:
    print(','.join(s))
相关推荐
牛客企业服务几秒前
2025年AI面试推荐榜单,数字化招聘转型优选
人工智能·python·算法·面试·职场和发展·金融·求职招聘
胡斌附体13 分钟前
linux测试端口是否可被外部访问
linux·运维·服务器·python·测试·端口测试·临时服务器
likeGhee1 小时前
python缓存装饰器实现方案
开发语言·python·缓存
项目題供诗1 小时前
黑马python(二十五)
开发语言·python
读书点滴1 小时前
笨方法学python -练习14
java·前端·python
笑衬人心。1 小时前
Ubuntu 22.04 修改默认 Python 版本为 Python3 笔记
笔记·python·ubuntu
蛋仔聊测试2 小时前
Playwright 中 Page 对象的常用方法详解
python
前端付豪2 小时前
17、自动化才是正义:用 Python 接管你的日常琐事
后端·python
jioulongzi2 小时前
记录一次莫名奇妙的跨域502(badgateway)错误
开发语言·python
破无差2 小时前
python实现简单的地图绘制与标记20250705
python