鱼C论坛

 找回密码
 立即注册
查看: 2040|回复: 8

用编程解决数字逻辑的问题

[复制链接]
发表于 2014-9-27 22:04:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
有一道题目是这样的: F = ( AB + ~A~B  ) + ( CD + ~C~D ) = 1    //~代表非,~A~B即代表A非与B非
A、B、C、D都只能是0或1。
求编程列出ABCD的值组合,用真值表列出。

这是我在做万恶的数字逻辑作业的时候突然想到可以借助计算机解决出来的,不过鉴于明天要交作业了,时间又晚,所以这个问题我明天再思考,现在发出来给各位鱼油试试~~~~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-9-27 22:23:22 | 显示全部楼层
~A和~B不知道怎么表示?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-9-27 23:21:22 | 显示全部楼层
darren_gong 发表于 2014-9-27 22:23
~A和~B不知道怎么表示?

不是, 我的意思是利用计算机将这道题目解出来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-9-29 13:02:17 | 显示全部楼层
a = [0, 1]
b = [0, 1]
c = [0, 1]
d = [0, 1]

for a_1 in a:
    for b_1 in b:
        for c_1 in c:
            for d_1 in d:
                result = ((a_1 & b_1) + (~a_1 & ~b_1)) + ((c_1 & d_1) + (~c_1 & ~d_1))
                if result == 1:
                    print (a_1 + " " + b_1 + " " + c_1 + " "+ d_1)


很挫的一个例子,不过我也不知道这个描述对不对
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-9-29 14:01:12 | 显示全部楼层
/*
有一道题目是这样的: F = ( AB + ~A~B  ) + ( CD + ~C~D ) = 1    //~代表非,~A~B即代表A非与B非
A、B、C、D都只能是0或1。
求编程列出ABCD的值组合,用真值表列出。
*/
#include <stdio.h>
#define A(i) ((i&1) != 0)
#define B(i) ((i&2) != 0)
#define C(i) ((i&4) != 0)
#define D(i) ((i&8) != 0)
int validate(int i);
void print( int i );
int main(void) {
        int i = 0;
        for(;i<16;++i)
                if(validate(i)) 
                        print(i);
        return 0;
}

int validate(int i) {
        return ((A(i)&&B(i) || !A(i)&&!B(i)) || ( C(i)&&D(i) || !C(i)&&!D(i) ));
}
void print( int i ) {
        printf( "A:%d, B:%d, C:%d, D:%d \n", A(i), B(i), C(i), D(i) );
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-2 18:39:38 | 显示全部楼层

谢谢!我要认真研究下,以后的数字逻辑作业就不用担心啦!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-2 18:41:07 | 显示全部楼层
darren_gong 发表于 2014-9-29 13:02
a = [0, 1]
b = [0, 1]
c = [0, 1]

没学过这种语言:shock:不清楚行不行。能运行么,结果对么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-2 19:20:46 | 显示全部楼层

开头的那四个宏定义就是列出ABCD的各种组合,可是我不知道为什么这样做就可以使各个组合完全不同呢??能不能说下为什么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2014-11-1 02:19:12 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 05:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表