PHP版解刑侦科推理试题...

本文通过复杂的嵌套循环和条件判断解决了一道刑侦考试题目,使用PHP语言实现了对所有可能情况的遍历,并通过特定的逻辑筛选出符合题意的答案组合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

传说中的刑侦考试题终于把代码码出来了...




代码如下:



<?php
namespace admin;

class XingController extends BaseController{
    function indexAction()
    {
        for ($t1=1; $t1 <=4 ; $t1++) {
            for ($t2=1; $t2 <=4 ; $t2++) {
                for ($t3=1; $t3 <=4 ; $t3++) {
                    for ($t4=1; $t4 <=4 ; $t4++) {
                        for ($t5=1; $t5 <=4 ; $t5++) {
                            for ($t6=1; $t6 <=4 ; $t6++) {
                                for ($t7=1; $t7 <=4 ; $t7++) {
                                    for ($t8=1; $t8 <=4 ; $t8++) {
                                        for ($t9=1; $t9 <=4 ; $t9++) {
                                            for ($t10=1; $t10 <=4 ; $t10++) {

                                                // 2.
                                                if(!($t2 == 1 && $t5 == 3))
                                                {
                                                    if(!( $t2== 2 && $t5 == 4))
                                                    {
                                                        if(!( $t2== 3 && $t5 == 1))
                                                        {
                                                            if(!( $t2== 4 && $t5 == 2))
                                                            {
                                                                continue;
                                                            }
                                                        }
                                                    }
                                                }

                                                // 3.
                                                if(!(($t3 == 1 &&  $t6 == $t2 && $t2 == $t4) && ($t3 != $t6)))
                                                {
                                                    if(!(($t3 == 2 && $t3 == $t2 && $t2 == $t4) && ($t3 != $t6)))
                                                    {
                                                        if(!(($t3 == 3 && $t6 == $t3 && $t3 == $t4) && ($t3 != $t2)))
                                                        {
                                                            if(!(($t3 == 4 && $t6 == $t2 && $t2 == $t3) && ($t4 != $t6)))
                                                            {
                                                                continue;
                                                            }
                                                        }
                                                    }
                                                }

                                                //4.
                                                if(!($t4 == 1 && $t1 == $t5))
                                                {
                                                    if(!($t4 == 2 && $t2 == $t7))
                                                    {
                                                        if(!($t4 == 3 && $t1 == $t9))
                                                        {
                                                            if(!($t4 == 4 && $t6 == $t10))
                                                            {
                                                                continue;
                                                            }
                                                        }
                                                    }
                                                }

                                                //5. 
                                                if(!($t5 == 1 && $t8 == $t5 && $t4 != $t5 && $t9 != $t5 && $t7 != $t5))
                                                {
                                                    if(!($t5 == 2 && $t8 != $t5 && $t4 == $t5 && $t9 != $t5 && $t7 != $t5))
                                                    {
                                                        if(!($t5 == 3 && $t8 != $t5 && $t4 != $t5 && $t9 == $t5 && $t7 != $t5))
                                                        {
                                                            if(!($t5 == 4 && $t8 != $t5 && $t4 != $t5 && $t9 != $t5 && $t7 == $t5))
                                                            {
                                                                continue;
                                                            }
                                                        }
                                                    }
                                                }

                                                //6.
                                                if(!($t8 == $t2 && $t2 == $t4 && $t6 == 1))
                                                {
                                                    if(!($t8 == $t1 && $t1 == $t6 && $t6 == 2))
                                                    {
                                                        if(!($t8 == $t3 && $t3 == $t10 && $t6 == 3))
                                                        {
                                                            if(!($t8 == $t5 && $t5 == $t9 && $t6 == 4))
                                                            {
                                                                continue;
                                                            }
                                                        }
                                                    }
                                                }

                                                // 7.
                                                $array = [$t1,$t2,$t3,$t4,$t5,$t6,$t7,$t8,$t9,$t10];
                                                $str = array_count_values($array);
                                                $minCount = 10;
                                                $maxCount = 0;
                                                $min = [];
                                                $max = [];
                                                foreach ($str as $k => $v) {
                                                    if ($minCount > $v) {
                                                        $minCount = $v;
                                                    }

                                                    if ($maxCount < $v) {
                                                        $maxCount = $v;
                                                    }
                                                }
                                                foreach ($str as $k => $v) {
                                                    if ($minCount == $v) {
                                                        array_push($min, $k);
                                                    }

                                                    if ($maxCount == $v) {
                                                        array_push($max, $k);
                                                    }
                                                }
                                                if(count($min) > 1)
                                                {
                                                    continue;
                                                }
                                                // $min[0]是出现次数最少的选项值
                                                if($t7 == 1 || $min[0] == 3){
                                                    if($t7 == 2 || $min[0] == 2){
                                                        if($t7 == 3 || $min[0] == 1){
                                                            if($t7 == 4 || $min[0] == 4){
                                                                continue;
                                                            }
                                                        }
                                                    }
                                                }

                                                // 8. 
                                                $m = $t1+1;
                                                $n = $t1-1;
                                                if(! (($t7 == $m || $t7 == $n) && ($t5 == $m || $t5 == $n) && ($t2 == $m || $t2 == $n) && ($t10 != $m && $t10 != $n)) ){ //10
                                                    if(! (($t7 == $m || $t7 == $n) && ($t10 == $m || $t10 == $n) && ($t2 == $m || $t2 == $n) && ($t5 != $m && $t5 != $n)) ){ //5
                                                        if(! (($t10 == $m || $t10 == $n) && ($t5 == $m || $t5 == $n) && ($t2 == $m || $t2 == $n)&& ($t7 != $m && $t7 != $n)) ){ //7
                                                            if(! (($t7 == $m || $t7 == $n) && ($t5 == $m || $t5 == $n) && ($t10 == $m || $t10 == $n)&& ($t2 != $m && $t2 != $n)) ){ //2
                                                                continue;
                                                            }
                                                        }
                                                    }
                                                }

                                                // 9.
                                                if(($t1 == $t6) && ($t6 != $t5)){
                                                    if(($t1 != $t6) && ($t6 == $t5)){
                                                        if(($t1 == $t6) && ($t10 != $t5)){
                                                            if(($t1 != $t6) && ($t10 == $t5)){
                                                                if(($t1 == $t6) && ($t2 != $t5)){
                                                                    if(($t1 != $t6) && ($t2 == $t5)){
                                                                        if(($t1 == $t6) && ($t9 != $t5)){
                                                                            if(($t1 != $t6) && ($t9 == $t5)){
                                                                                continue;
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }

                                                // 10.
                                                $array = [$t1,$t2,$t3,$t4,$t5,$t6,$t7,$t8,$t9,$t10];
                                                $str = array_count_values($array);
                                                $minCount = 10;
                                                $maxCount = 0;
                                                $min = [];
                                                $max = [];
                                                foreach ($str as $k => $v) {
                                                    if ($minCount > $v) {
                                                        $minCount = $v;
                                                    }

                                                    if ($maxCount < $v) {
                                                        $maxCount = $v;
                                                    }
                                                }

                                                if(!($t10==1 && (($maxCount - $minCount)==3))){
                                                    if(!($t10==2 && (($maxCount - $minCount)==2))){
                                                        if(!($t10==3 && (($maxCount - $minCount)==4))){
                                                            if(!($t10==4 && (($maxCount - $minCount)==1))){
                                                                continue;
                                                            }
                                                        }
                                                    }
                                                }

                                                $array = [$t1,$t2,$t3,$t4,$t5,$t6,$t7,$t8,$t9,$t10];
                                                $arr  = [];
                                                foreach ($array as $k => $v){
                                                    if($v == 1){
                                                        $v = 'A';
                                                    }
                                                    if($v == 2){
                                                        $v = 'B';
                                                    }
                                                    if($v == 3){
                                                        $v = 'C';
                                                    }
                                                    if($v == 4){
                                                        $v = 'D';
                                                    }
                                                    array_push($arr,$v);
                                                }



                                                var_dump('第1题的答案是:'.$arr[0].',</br>'.
                                                    '第2题的答案是:'.$arr[1].',</br>'.
                                                    '第3题的答案是:'.$arr[2].',</br>'.
                                                    '第4题的答案是:'.$arr[3].',</br>'.
                                                    '第5题的答案是:'.$arr[4].',</br>'.
                                                    '第6题的答案是:'.$arr[5].',</br>'.
                                                    '第7题的答案是:'.$arr[6].',</br>'.
                                                    '第8题的答案是:'.$arr[7].',</br>'.
                                                    '第9题的答案是:'.$arr[8].',</br>'.
                                                    '第10题的答案是:'.$arr[9].',</br>');

                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值