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

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

共有12种选考方案:

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

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

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

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

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

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

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

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

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

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

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

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

【样例说明】
【评分标准】

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))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值