当前位置:   article > 正文

网红题2018刑侦科推理测试题(终于敲出来啦!!!!!!)_18年刑侦科推理试题

18年刑侦科推理试题

哈哈哈哈哈哈,终于把他敲出来了,附心路历程(关键下面那个特特特特特别大的循环一共循环了1048576次,次数太多了,能不能再简单点呢)


心路历程:正常逻辑思考

已知: 一.单选
           二.9题为入口
           三.两个条件:
               1.1题与6题答案相同为真,X题与5题答案相同为假
               2.1题与6题答案相同为假,X题与5题答案相同为真

           四.2题不与任何一题答案相同


解:

    令1题与6题答案相同为真,则1,6,8题答案B

    8题答案B,5题与1题答案不相邻,1题答案B,所以5,7题D

    答案字母出现次数最少,既出现次数为1,若为2,则其他选项出现次数为333,+2=11>10,所以假设失败

    正确条件是X题与5题答案相同为真

    X题与5题答案相同,由9题知2,6,9,10题中只有一题与5题答案相同,由5题知4,7,8,9题中只有一题与5题答案相同,9题不与5题答案相同,所以6题C

    由上述已知得6题不与5题相同,且3,10,8答案相同,所以9题B,则3,8,10,5题答案相同

    得出3,8,10,5题A,所以2题C

    又因为7题答案不是C,由8题知7题与1题答案不相邻,去4题排除BDA,所以4题C,1题B

    因为8题答案是A,所以7题D

代码这么写的:
  1. package com.yunzhi.edu.controller;
  2. import java.util.ArrayList;
  3. import java.util.Arrays;
  4. import java.util.Collections;
  5. import java.util.List;
  6. public class Test {
  7. //list是答案集合,对应下面每一道题得答案,有一个不满足就返回false,都满足返回true
  8. public static boolean bln(List<String> list) {
  9. if (!T1(list)) {
  10. return false;
  11. }
  12. if (!T2(list)) {
  13. return false;
  14. }
  15. if (!T3(list)) {
  16. return false;
  17. }
  18. if (!T4(list)) {
  19. return false;
  20. }
  21. if (!T5(list)) {
  22. return false;
  23. }
  24. if (!T6(list)) {
  25. return false;
  26. }
  27. if (!T7(list)) {
  28. return false;
  29. }
  30. if (!T8(list)) {
  31. return false;
  32. }
  33. if (!T9(list)) {
  34. return false;
  35. }
  36. if (!T10(list)) {
  37. return false;
  38. }
  39. return true;
  40. }
  41. //1T:这道题选啥?(A A,B B,C C,D D)。第一题写不写对程序没啥影响,根本没影响
  42. public static boolean T1(List<String> list) {
  43. String str = list.get(0);
  44. if (str.equals("A")) {
  45. boolean flag = (str.equals("A"));
  46. return flag;
  47. }
  48. if (str.equals("B")) {
  49. boolean flag = (str.equals("B"));
  50. return flag;
  51. }
  52. if (str.equals("C")) {
  53. boolean flag = (str.equals("C"));
  54. return flag;
  55. }
  56. if (str.equals("D")) {
  57. boolean flag = (str.equals("D"));
  58. return flag;
  59. }
  60. return false;
  61. }
  62. //2T:第5题选啥?(A C,B D,C A,D B)。写不写这道题还是没啥影响
  63. public static boolean T2(List<String> list) {
  64. String str = list.get(1);
  65. if (str.equals("A")) {
  66. //5T答案C
  67. String a = list.get(4);
  68. boolean flag = (a.equals("C"));
  69. return flag;
  70. }
  71. if (str.equals("B")) {
  72. //5T答案D
  73. String a = list.get(4);
  74. boolean flag = (a.equals("D"));
  75. return flag;
  76. }
  77. if (str.equals("C")) {
  78. //5T答案A
  79. String a = list.get(4);
  80. boolean flag = (a.equals("A"));
  81. return flag;
  82. }
  83. if (str.equals("D")) {
  84. //5T答案B
  85. String a = list.get(4);
  86. boolean flag = (a.equals("B"));
  87. return flag;
  88. }
  89. return false;
  90. }
  91. //3T:以下选项中哪一个与其他三个不同?(A 3,B 6,C 2,D 4)。既三个一样的,一个不一样的
  92. public static boolean T3(List<String> list) {
  93. String str = list.get(2);
  94. if (str.equals("A")) {
  95. //2T4T6T答案相同
  96. String a = list.get(1);
  97. String b = list.get(3);
  98. String c = list.get(5);
  99. boolean flag = (a.equals(b) && a.equals(c) && b.equals(c));
  100. return flag;
  101. }
  102. if (str.equals("B")) {
  103. //2T3T4T答案相同
  104. String a = list.get(1);
  105. String b = list.get(2);
  106. String c = list.get(3);
  107. boolean flag = (a.equals(b) && a.equals(c) && b.equals(c));
  108. return flag;
  109. }
  110. if (str.equals("C")) {
  111. //3T4T6T答案相同
  112. String a = list.get(2);
  113. String b = list.get(3);
  114. String c = list.get(5);
  115. boolean flag = (a.equals(b) && a.equals(c) && b.equals(c));
  116. return flag;
  117. }
  118. if (str.equals("D")) {
  119. //2T3T6T答案相同
  120. String a = list.get(1);
  121. String b = list.get(2);
  122. String c = list.get(5);
  123. boolean flag = (a.equals(b) && a.equals(c) && b.equals(c));
  124. return flag;
  125. }
  126. return false;
  127. }
  128. //4T:以下选项中哪两题答案相同?(A 1T5T,B 2T7T,C 1T9T, D 6T10T)。既选项中两道题答案相同
  129. public static boolean T4(List<String> list) {
  130. String str = list.get(3);
  131. if (str.equals("A")) {
  132. //1T5T答案相同
  133. String a = list.get(0);
  134. String b = list.get(4);
  135. boolean flag = a.equals(b);
  136. return flag;
  137. }
  138. if (str.equals("B")) {
  139. //2T7T答案相同
  140. String a = list.get(1);
  141. String b = list.get(6);
  142. boolean flag = a.equals(b);
  143. return flag;
  144. }
  145. if (str.equals("C")) {
  146. //1T9T答案相同
  147. String a = list.get(0);
  148. String b = list.get(8);
  149. boolean flag = a.equals(b);
  150. return flag;
  151. }
  152. if (str.equals("D")) {
  153. //6T10T答案相同
  154. String a = list.get(5);
  155. String b = list.get(9);
  156. boolean flag = a.equals(b);
  157. return flag;
  158. }
  159. return false;
  160. }
  161. //5T:以下哪个与本题答案相同?(A 8, B 4, C 9, D 7)。既选项与5T答案相同
  162. public static boolean T5(List<String> list) {
  163. String str = list.get(4);
  164. if (str.equals("A")) {
  165. //5T8T答案相同
  166. String a = list.get(4);
  167. String b = list.get(7);
  168. boolean flag = a.equals(b);
  169. return flag;
  170. }
  171. if (str.equals("B")) {
  172. //5T4T答案相同
  173. String a = list.get(3);
  174. String b = list.get(4);
  175. boolean flag = a.equals(b);
  176. return flag;
  177. }
  178. if (str.equals("C")) {
  179. //5T9T答案相同
  180. String a = list.get(4);
  181. String b = list.get(8);
  182. boolean flag = a.equals(b);
  183. return flag;
  184. }
  185. if (str.equals("D")) {
  186. //5T7T答案相同
  187. String a = list.get(4);
  188. String b = list.get(6);
  189. boolean flag = a.equals(b);
  190. return flag;
  191. }
  192. return false;
  193. }
  194. //6T:以下哪两个与8T答案相同?(A 2T4T, B 1T6T, C 3T10T, D 5T9T)。既选项和8T三个选项一样
  195. public static boolean T6(List<String> list) {
  196. String str = list.get(5);
  197. if (str.equals("A")) {
  198. //2T4T8T答案相同
  199. String a = list.get(1);
  200. String b = list.get(3);
  201. String c = list.get(7);
  202. boolean flag = (a.equals(b) && a.equals(c) && b.equals(c));
  203. return flag;
  204. }
  205. if (str.equals("B")) {
  206. //1T6T8T答案相同
  207. String a = list.get(0);
  208. String b = list.get(5);
  209. String c = list.get(7);
  210. boolean flag = (a.equals(b) && a.equals(c) && b.equals(c));
  211. return flag;
  212. }
  213. if (str.equals("C")) {
  214. //3T8T10T答案相同
  215. String a = list.get(2);
  216. String b = list.get(7);
  217. String c = list.get(9);
  218. boolean flag = (a.equals(b) && a.equals(c) && b.equals(c));
  219. return flag;
  220. }
  221. if (str.equals("D")) {
  222. //5T8T9T答案相同
  223. String a = list.get(4);
  224. String b = list.get(7);
  225. String c = list.get(8);
  226. boolean flag = (a.equals(b) && a.equals(c) && b.equals(c));
  227. return flag;
  228. }
  229. return false;
  230. }
  231. //7T:10道题中最少的选项是什么?(A C, B B, C A, D D)。Collections.frequency(list, String)方法计算list中出现重复的次数
  232. public static boolean T7(List<String> list) {
  233. String str = list.get(6);
  234. int countA = Collections.frequency(list, "A");
  235. int countB = Collections.frequency(list, "B");
  236. int countC = Collections.frequency(list, "C");
  237. int countD = Collections.frequency(list, "D");
  238. List<Integer> arrayList = new ArrayList<Integer>();
  239. arrayList.add(countA);
  240. arrayList.add(countB);
  241. arrayList.add(countC);
  242. arrayList.add(countD);
  243. int a = Collections.min(arrayList);
  244. if (str.equals("A")) {
  245. boolean flag = (a == countC);
  246. return flag;
  247. }
  248. if (str.equals("B")) {
  249. boolean flag = (a == countB);
  250. return flag;
  251. }
  252. if (str.equals("C")) {
  253. boolean flag = (a == countA);
  254. return flag;
  255. }
  256. if (str.equals("D")) {
  257. boolean flag = (a == countD);
  258. return flag;
  259. }
  260. return false;
  261. }
  262. //8T:以下哪个与1T答案不相邻?(A 7, B 5, C 2, D 10)。既AC与BD与AD(Math.abs()取绝对值,indexOf是取下表索引)
  263. public static boolean T8(List<String> list) {
  264. String[] numArray = new String[]{"A", "B", "C", "D"};
  265. List<String> arrayList = Arrays.asList(numArray);
  266. String str = list.get(7);
  267. String STR = list.get(0);
  268. //两道题答案索引之差绝对值大于1
  269. if (str.equals("A")) {
  270. String asd = list.get(6);
  271. boolean flag = (Math.abs(arrayList.indexOf(STR) - arrayList.indexOf(asd)) > 1);
  272. return flag;
  273. }
  274. if (str.equals("B")) {
  275. String asd = list.get(4);
  276. boolean flag = (Math.abs(arrayList.indexOf(STR) - arrayList.indexOf(asd)) > 1);
  277. return flag;
  278. }
  279. if (str.equals("C")) {
  280. String asd = list.get(1);
  281. boolean flag = (Math.abs(arrayList.indexOf(STR) - arrayList.indexOf(asd)) > 1);
  282. return flag;
  283. }
  284. if (str.equals("D")) {
  285. String asd = list.get(9);
  286. boolean flag = (Math.abs(arrayList.indexOf(STR) - arrayList.indexOf(asd)) > 1);
  287. return flag;
  288. }
  289. return false;
  290. }
  291. //9T:“1T6T答案相同”与“XT5T答案相同”真假性相反,X=?(A 6, B 10, C 2, D 9)。既 1T=6T&&XT!=5T 或 1T!=6T&&XT=5T
  292. public static boolean T9(List<String> list) {
  293. String str = list.get(8);
  294. String asd = list.get(0);
  295. String ASD = list.get(5);
  296. boolean flag = asd.equals(ASD);
  297. //flag为真,XT与5T没关系;flag为假,XT=5T
  298. if (str.equals("A")) {
  299. if (!flag) {
  300. String a = list.get(4);
  301. String b = list.get(5);
  302. boolean ToF = a.equals(b);
  303. return ToF;
  304. }
  305. }
  306. if (str.equals("B")) {
  307. if (!flag) {
  308. String a = list.get(4);
  309. String b = list.get(9);
  310. boolean ToF = a.equals(b);
  311. return ToF;
  312. }
  313. }
  314. if (str.equals("C")) {
  315. if (!flag) {
  316. String a = list.get(1);
  317. String b = list.get(4);
  318. boolean ToF = a.equals(b);
  319. return ToF;
  320. }
  321. }
  322. if (str.equals("D")) {
  323. if (!flag) {
  324. String a = list.get(4);
  325. String b = list.get(8);
  326. boolean ToF = a.equals(b);
  327. return ToF;
  328. }
  329. }
  330. return false;
  331. }
  332. //10T:答案中ABCD出现次数最多与最少之差?(A 3, B 2, C 4, D 1)。
  333. public static boolean T10(List<String> list) {
  334. String str = list.get(9);
  335. int countA = Collections.frequency(list, "A");
  336. int countB = Collections.frequency(list, "B");
  337. int countC = Collections.frequency(list, "C");
  338. int countD = Collections.frequency(list, "D");
  339. List<Integer> arrayList = new ArrayList<Integer>();
  340. arrayList.add(countA);
  341. arrayList.add(countB);
  342. arrayList.add(countC);
  343. arrayList.add(countD);
  344. int a = Collections.min(arrayList);
  345. int b = Collections.max(arrayList);
  346. if (str.equals("A")) {
  347. boolean flag = (b - a == 3);
  348. return flag;
  349. }
  350. if (str.equals("B")) {
  351. boolean flag = (b - a == 2);
  352. return flag;
  353. }
  354. if (str.equals("C")) {
  355. boolean flag = (b - a == 4);
  356. return flag;
  357. }
  358. if (str.equals("D")) {
  359. boolean flag = (b - a == 1);
  360. return flag;
  361. }
  362. return false;
  363. }
  364. public static void main(String[] args) {
  365. //ABCD
  366. String[] numArray = new String[]{"A", "B", "C", "D"};
  367. //一个特特特特特特别特别大的循环
  368. String[] initArray = new String[10];
  369. List<String> selectList = Arrays.asList(initArray);
  370. for (String q : numArray) {
  371. selectList.set(0, q);
  372. for (String w : numArray) {
  373. selectList.set(1, w);
  374. for (String e : numArray) {
  375. selectList.set(2, e);
  376. for (String a : numArray) {
  377. selectList.set(3, a);
  378. for (String s : numArray) {
  379. selectList.set(4, s);
  380. for (String d : numArray) {
  381. selectList.set(5, d);
  382. for (String z : numArray) {
  383. selectList.set(6, z);
  384. for (String x : numArray) {
  385. selectList.set(7, x);
  386. for (String c : numArray) {
  387. selectList.set(8, c);
  388. for (String v : numArray) {
  389. selectList.set(9, v);
  390. boolean result = bln(selectList);
  391. if (result == true) {
  392. System.out.println("2018刑侦科测试题答案为:" + selectList.toString());
  393. }
  394. }
  395. }
  396. }
  397. }
  398. }
  399. }
  400. }
  401. }
  402. }
  403. }
  404. }
  405. }



答案:B, C, A, C, A, C, D, A, B, A

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/940324
推荐阅读
相关标签
  

闽ICP备14008679号