A,B,C 三个老师各教什么课(离散数学)c语言实现

通过将课程分配问题转化为逻辑量,使用C语言的多层循环来穷举所有可能的情况,并结合题目条件进行筛选。程序检查每个老师至少教两门课,最后输出符合条件的教师与课程分配结果。
摘要由CSDN通过智能技术生成

A,B,C三个老师各教什么课(离散数学) c语言

在这里插入图片描述

首先我们把问题数学化用x1…x6,6个符号表示6门课程,这6门课程只有三种状态,或A,或B,或C!我们把A,B,C看成三个逻辑量 0,1 2.所以6们课无疑就只有三种可能或0,或1,或2!并且它们的状态是相关联的!所以我们就使用for循环,所有可能的情况都可以被计算机得出,当我们再加上题目所给的限制条件时!剩下的可能性仍然不唯一,但是我们发掘出了一个隐含条件:每个老师教两门课,数学化以后就等价于 0 + 0 + 1 +1 +2 +2=6,即 x1+…+x6=6! 这样问题就得到了解决

程序如下:

#include <stdio.h>
int main(){
int x1,x2,x3,x4,x5,x6;
for(x1=0;x1<3;x1++){
for(x2=0;x2<3;x2++){
for(x3=0;x3<3;x3++){
for(x4=0;x4<3;x4++){
for(x5=0;x5<3;x5++){
for(x6=0;x6<3;x6++){
if((x2!=x3) + (x4!=x1) + (x4!=0) + (x2!=0) + (x4!=x2) +
(x5!=1) + (x1!=1) + (x5!=x1

  • 6
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值