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))
相关推荐
新子y4 分钟前
【小白笔记】最大交换 (Maximum Swap)问题
笔记·python
程序员爱钓鱼1 小时前
Python编程实战 · 基础入门篇 | Python的缩进与代码块
后端·python
pr_note2 小时前
python|if判断语法对比
python
apocelipes4 小时前
golang unique包和字符串内部化
java·python·性能优化·golang
Geoking.5 小时前
NumPy zeros() 函数详解
python·numpy
Full Stack Developme5 小时前
java.text 包详解
java·开发语言·python
丁浩6666 小时前
Python机器学习---2.算法:逻辑回归
python·算法·机器学习
B站_计算机毕业设计之家6 小时前
计算机毕业设计:Python农业数据可视化分析系统 气象数据 农业生产 粮食数据 播种数据 爬虫 Django框架 天气数据 降水量(源码+文档)✅
大数据·爬虫·python·机器学习·信息可视化·课程设计·农业
Q_Q5110082857 小时前
python+uniapp基于微信小程序的旅游信息系统
spring boot·python·微信小程序·django·flask·uni-app·node.js
鄃鳕7 小时前
python迭代器解包【python】
开发语言·python