神刀安全网

用编程解决 公务员考试 中的逻辑推理题



一、背景

朋友这几天在准备公务员考试,闲聊之中,给我传来一道题,是一道逻辑推理题,问我答案为何?

用编程解决 公务员考试 中的逻辑推理题

让我这个工作好几年的老油条再做这种题,真的伤脑筋,我说:“干脆我用编程做做看吧”,于是便有了此文……


二、正文

这里我用的是javascrpt编程语言

1、定义变量

定义小王为 wang;
定义小张为 zhang;
定义小李为 li;

var wang = 0; var zhang = 0; var li = 0;

2、设定条件

类型一:

条件1:如果小王被挑选上,那么小张就会被挑选上
条件2:只有小李被选上,小王才不会被选上
条件3:如果小张被选上,那么小李就会被选上

前三个条件,带有“如果”、“只有”的假设语气,所以逻辑上属于一类,注意需要考虑“如果不”的情况( 用到 ||

条件1:(wang && zhang) || (!wang)
条件2:(li && !wang) || (!li)
条件3:(zhang && li) || (!zhang)

类型二:

条件4:小王和小李都会被选上,那是不可能的

条件4属于确定语气,所以逻辑上属于另一类

条件4:!(wang && li)

3、遍历所有情况,筛选符合条件的情况

遍历用三层for循环,对三个参选人,分别用0表示没被选上,1表示被选上

for (var wang = 0; wang <= 1; wang++) {             for (var zhang = 0; zhang <= 1; zhang++) {                 for (var li = 0; li <= 1; li++) {

再判断是否同时满足上述n种条件:

  if (condition_1 && condition_2 && condition_3 && condition_4) {

4、输出结果

运行代码,在浏览器的控制台看到输出结果:

用编程解决 公务员考试 中的逻辑推理题

第一种:小王,小张,小李都没选上
第二种:小王和小张都没选上,小李选上了
第三种:小王没选上,小张和小李都选上了

根据题意,最终只能推选1至2个候选人,所以排除第一种,所以只剩第二种和第三种结果。

所以结合原题,答案选D


三、完整代码

        var result = [];          for (var wang = 0; wang <= 1; wang++) {             for (var zhang = 0; zhang <= 1; zhang++) {                 for (var li = 0; li <= 1; li++) {                      var condition_1 = (wang && zhang) || (!wang);                     var condition_2 = (li && !wang) || (!li);                     var condition_3 = (zhang && li) || (!zhang);                     var condition_4 = !(wang && li);                      if (condition_1 && condition_2 && condition_3 && condition_4) {                         var re = "wang:" + wang + ",zhang:" + zhang + ",li:" + li;                         result.push(re);                     }                  }             }         }          console.log(result);

转载本站任何文章请注明:转载至神刀安全网,谢谢神刀安全网 » 用编程解决 公务员考试 中的逻辑推理题

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址