文档章节

PHP编程解答2018刑侦推理试题

酒逍遥
 酒逍遥
发布于 03/08 16:55
字数 530
阅读 1613
收藏 5

这是网上很火的2018刑侦推理试题,网上已经有人推理得出答案。

作为程序员当然想的是如何用编程得出答案.

php代码如下

<?php
$option = array('A','B','C','D');
function check_1($data){
	return true;
}

function check_2($data){
	$question = array('A'=>'C','B'=>'D','C'=>'A','D'=>'B');
	if($question[$data[2]] == $data[5]) return true;
	return false;
}

function check_3($data){
	$question = array('A'=>$data[3],'B'=>$data[6],'C'=>$data[2],'D'=>$data[4]);
	$answer = $question[$data[3]];
	unset($question[$data[3]]);
	if(!in_array($answer,$question)) return true;
	return false;
}

function check_4($data){
	$question = array('A'=>$data[1]==$data[5],'B'=>$data[2]==$data[7],'C'=>$data[1]==$data[9],'D'=>$data[6]==$data[10]);
	return $question[$data[4]];
}

function check_5($data){
	$question = array('A'=>$data[8],'B'=>$data[4],'C'=>$data[9],'D'=>$data[7]);
	if($question[$data[5]] == $data[5]) return true;
	return false;
}

function check_6($data){
	$question = array('A'=>$data[2]==$data[4] && $data[4]==$data[8],'B'=>$data[1]==$data[6] && $data[6]==$data[8],'C'=>$data[3]==$data[10] && $data[10]==$data[8],'D'=>$data[5]==$data[9] && $data[9]=$data[8]);
	return $question[$data[6]];	
}

function check_7($data){
	$question = array('A'=>'C','B'=>'B','C'=>'A','D'=>'D');
	$count = array_count_values($data);
	arsort($count);
	if(array_pop(array_keys($count))==$question[$data[7]]) return true;
	return false;
}

function check_8($data){
	$map = array('A'=>1,'B'=>2,'C'=>3,'D'=>4);
	$question = array('A'=>$data[7],'B'=>$data['5'],'C'=>$data['2'],'D'=>$data['10']);
	if(abs($map[$data[1]] - $map[$question[$data[8]]])>1) return true;
	return false;
}

function check_9($data){
	$question = array('A'=>$data[6],'B'=>$data[10],'C'=>$data[2],'D'=>$data[9]);
	if(($question[$data[9]] == $data[5])!=($data[1] == $data[6]))return true;
	return false;
	
}

function check_10($data){
	$question = array('A'=>3,'B'=>2,'C'=>4,'D'=>1);
	$count = array_count_values($data);
	arsort($count);
	$min = array_pop($count);
	asort($count);
	$max = array_pop($count);
	if($question[$data[10]] == $max-$min) return true;
	return false;
}

foreach($option as $v[1]){
	foreach($option as $v[2]){
		foreach($option as $v[3]){
			foreach($option as $v[4]){
				foreach($option as $v[5]){
					foreach($option as $v[6]){
						foreach($option as $v[7]){
							foreach($option as $v[8]){
								foreach($option as $v[9]){
									foreach($option as $v[10]){
										for($i=1;$i<=10;$i++){
											$answer[$i] = $v[$i];
										}
										for($i=1;$i<=10;$i++){
											$func = "check_".$i;
											if(!$func($answer)) break;
										}
										if($i == 11) {echo implode(' ',$answer)."\r\n";die;}
									}
								}
							}
						}
					}
				}
			}
		}
	}
}
?>

结果输出:B C A C A C D A B A

应该是正确答案,不过用的是最简单的暴力破解算法,不过计算机不就是干这事儿的么.

当然算法还可以想其他方法比如动态规划等等.

© 著作权归作者所有

共有 人打赏支持
酒逍遥

酒逍遥

粉丝 48
博文 40
码字总数 35454
作品 0
武汉
高级程序员
私信 提问
加载中

评论(1)

秋之白华Victor
不错哦!
2018 前端面试准备

前端面试常见问题按知识点分类整理 前端面试常考问题整理,按模块知识点分类,持续完善中... Front-end-Developer-Questions by Modules and knowledge 前端面试经典问题:CSS 中居中的几种方...

掘金官方
2017/12/14
0
0
C/C++程序员应聘常见面试题深入剖析

C/C++程序员应聘常见面试题深入剖析 1.引言   本文的写作目的并不在于提供C/C++程序员求职面试指导,而旨在从技术上分析面试题的内涵。文中的大多数面试题来自各大论坛,部分试题解答也参考...

庸人谷
2012/12/14
0
0
编程艺术家经典试题解读:猜生日问题

这是一道很多人知道的经典题目,其中的逻辑推理堪称短小精悍试题的典范。 题目: 张老师的生日为M月D日,他将M值告诉给了小明,将D值告诉给了小强。然后给出如下这些日期: 3月4日,3月5日,...

晨曦之光
2012/04/24
102
0
转载-经典面试题

3.内功题   试题1:分别给出BOOL,int,float,指针变量 与“零值”比较的 if 语句(假设变量名为var)   解答:    BOOL型变量:if(!var)    int型变量: if(var==0)    float...

zray4u
2016/07/04
8
0
谈高考真题的使用(数学)

在高三数学复习中,大家常说“以本为本,以纲为纲,高考真题当主粮”,就是以教材内容为根本,以“考试大纲”为准绳,以高考真题的训练为主线;抓住了本,把握了纲,训练有的放矢,我们的复习...

风华神使
2016/05/20
57
0

没有更多内容

加载失败,请刷新页面

加载更多

计算机系统要素 C5

本章值得一提的是组织计算机的结构。Hack 的指令和数据是分开存储的,因此它的 CPU 有两个 input: IN inM[16], // M value input (M = contents of RAM[A]) instruction[16],...

lionets
13分钟前
0
0
SpringSecurity404需要注意的地方

在使用@RequestMapping的时候路径的值如果写为("auth"),虽然用的时候前面加不加"/"没有区别,但是在配置了SpringSecurity的http.authorizeRequests().antMatchers()时就必须要注意了! 🌰1...

百萬馬力
16分钟前
0
0
10分钟读懂阿里巴巴高级专家在Flutter Live2018的分享

作者:闲鱼技术-宗心 12月4日,google flutter团队宣布第一个flutter正式版本发布。次日,Flutter Live Beijing 会议上,google flutter团队邀请了在这一技术方案中重要的合作伙伴闲鱼团队分...

阿里云官方博客
17分钟前
1
0
RxJava window操作符

原文:https://github.com/Froussios/Intro-To-RxJava/blob/master/Part%204%20-%20Concurrency/3.%20Sequences%20of%20coincidence.md Sequences of coincidence Rx试图避免管道(pipeline)外......

woshixin
24分钟前
1
0
05.Beetl标签函数以及定界符、占位符介绍---《Beetl视频课程》

本期视频实现了博客的详情页面; 内容简介:使用了标签函数layout完成详情功能 一起学beetl目录:https://my.oschina.net/u/1590490?tab=newest&catalogId=6214598 作者:GK #标签函数 layo...

Gavin-King
25分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部