Node.js力破江苏网警刑侦科推理试题

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

174459_cEty_2660780.jpg

 

月前,江苏网警 在微博发布了一套《2018年刑侦科目推理试题》,可谓难倒了诸多英雄好汉,评论区内更是一片皮皮之音。

  • @二向箔icon: 高考前班主任教过我们,遇上不会的题,全部选C

  • 丶复杂动物:ABBCCADCDBE下一题

  • @活着就是要搞事情:好奇心让我点进去,求生欲让我退出来

  • 启禾公考:我把鲁迅的棺材板按着 你们尽管答题

不过当这事传入了程序猿族的耳中,画风顿时突变,Java、Python、PHP 等各派英雄纷纷使出门派语言,以 枚举法 之小小智谋便破解了江苏网警这 刑侦推理 之阵。

我等前端后生亦不甘落后,于是 便有了今天 这一 《Node.js力破江苏网警刑侦科推理试题》一说。

话不多说,先上图:

145633_QUD9_2660780.gif

交出代码,以示清白:

question.js

/*** Created by lonelydawn at 2018-03-29.*/
let options = ['A', 'B', 'C', 'D']
// 定义题目答案数组,数组首个元素设置为空, 以偏移数组下标和题号对齐
let answers = [, 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A']
let result = []
/*** 01. 这道题的答案是* A. A    B. B    C. C    D. D*//*** 02. 第5题的答案是* A. C    B. D    C. A    D. B*/
let getQues02 = function (answers) {if (answers[5] === 'C') {return 'A'} else if (answers[5] === 'D') {return 'B'} else if (answers[5] === 'A') {return 'C'} else if (answers[5] === 'B') {return 'D'}return -1
}/*** 03. 以下哪一题答案与其他三项不同* A. 第3题    B. 第6题    C. 第2题    D. 第4题*/
let getQues03 = function (answers) {if (answers[3] !== answers[6] && answers[3] !== answers[2]&& answers[3] !== answers[4]) {return 'A'} else if (answers[6] !== answers[3] && answers[6] !== answers[2]&& answers[6] !== answers[4]) {return 'B'} else if (answers[2] !== answers[3] && answers[2] !== answers[6]&& answers[2] !== answers[4]) {return 'C'} else if (answers[4] !== answers[3] && answers[4] !== answers[6]&& answers[4] !== answers[2]) {return 'D'}return -1
}/*** 04. 以下选项中哪两题答案相同* A. 第1,5题    B. 第2,7题    C. 第1,9题     D. 第6,10题*/
let getQues04 = function (answers) {if (answers[1] === answers[5]) {return 'A'} else if (answers[2] === answers[7]) {return 'B'} else if (answers[1] === answers[9]) {return 'C'} else if (answers[6] === answers[10]) {return 'D'}return -1
}/*** 05. 以下选项中哪一题答案与本题相同* A. 第8题    B. 第4题    C. 第9题     D. 第7题*/
let getQues05 = function (answers) {if (answers[8] === 'A') {return 'A'} else if (answers[4] === 'B') {return 'B'} else if (answers[9] === 'C') {return 'C'} else if (answers[7] === 'D') {return 'D'}return -1
}/*** 06. 以下选项中哪两题的答案与第八题相同* A. 第2,4题    B. 第1,6题    C. 第3,10题     D. 第5,9题*/
let getQues06 = function (answers) {if (answers[8] === answers[2] && answers[8] === answers[4]) {return 'A'} else if (answers[8] === answers[1] && answers[8] === answers[6]) {return 'B'} else if (answers[8] === answers[3] && answers[8] === answers[10]) {return 'C'} else if (answers[8] === answers[5] && answers[8] === answers[9]) {return 'D'}return -1
}
/*** 07. 在此十道题中,被选中次数最少的选项字母为* A. C    B. B    C. A     D. D*/
let getQues07 = function (answers) {let counter = [0, 0, 0, 0]answers.forEach(function (answer) {options.forEach(function (option, index) {if (answer === option) {counter[index]++}})})return options[counter.indexOf(Math.min(counter[0], counter[1], counter[2], counter[3]))]
}
/*** 08. 以下选项中哪一题的答案与第一题的答案在字母中不相邻* A. 第7题    B. 第5题    C. 第2题     D. 第10题* 解: A、B、C、D 四个字母,先列出每个字母不相邻的都有哪些,再进行判断* PS: 这题可能出现多解,但由于试题明确地标注了“单项选择”,因此只取第一个*/
let getQues08 = function (answers) {let notNeighbor = {A: ['C', 'D'],B: ['D'],C: ['A'],D: ['A', 'B']}[answers[1]]if (notNeighbor.indexOf(answers[7]) > -1) {return 'A'} else if (notNeighbor.indexOf(answers[5]) > -1) {return 'B'} else if (notNeighbor.indexOf(answers[2]) > -1) {return 'C'} else if (notNeighbor.indexOf(answers[10]) > -1) {return 'D'}return -1
}
/*** 09. 已知"第一题与第六题的答案相同"与"第X题与第5题的答案相同"的真假性* A. 第6题    B. 第10题    C. 第2题     D. 第9题* 解:* 题干意思简单来说就是: 第X题答案可能与第5题相同,也可能不同,* 因此我们分两种情况进行判断* PS:* 如果第一题和第六题答案相同,则X与5答案不相同,X的答案有多个取值可能(A/B/C/D)* 如果不同,则x与5答案相同,X的答案只能取唯一值* 但即使X的答案取值唯一,X也有多个取值可能(1-10)* 我将这些取值的候选数组和题目的4个选项取交集,从而可以限定出唯一 X 值*/
let getQues09 = function (answers) {let arr = []let x = -1if (answers[1] === answers[6]) {for (let i = 0; i < answers.length; i++) {if (i !== 5 && answers[i] !== answers[5]) {let answer = ['A', 'B', 'C', 'D'][[6, 10, 2, 9].indexOf(i)]if (answer) {return answer}}}} else {for (let i = 0; i < answers.length; i++) {if (i !== 5 && answers[i] === answers[5]) {let answer = ['A', 'B', 'C', 'D'][[6, 10, 2, 9].indexOf(i)]if (answer) {return answer}}}}
}
/*** 10. 在此10道题中, ABCD四个字母出现次数最多与最少者的差为* A. 3    B. 2    C. 4     D. 1*/
let getQues10 = function (answers) {let counter = [0, 0, 0, 0]answers.forEach(function (answer) {options.forEach(function (option, index) {if (answer === option) {counter[index]++}})})let max = Math.max(counter[0], counter[1], counter[2], counter[3])let min = Math.min(counter[0], counter[1], counter[2], counter[3])return {1: 'D',2: 'B',3: 'A',4: 'C'}[max - min]
}// 递归 + 循环 建立枚举队列
let recurse = function (answers, index) {if (index < 10) {for (let i = 0; i < options.length; i++) {answers[index] = options[i]recurse(answers, index + 1)if (getQues02(answers) !== answers[2]) {continue}if (getQues03(answers) !== answers[3]) {continue}if (getQues04(answers) !== answers[4]) {continue}if (getQues05(answers) !== answers[5]) {continue}if (getQues06(answers) !== answers[6]) {continue}if (getQues07(answers) !== answers[7]) {continue}if (getQues08(answers) !== answers[8]) {continue}if (getQues09(answers) !== answers[9]) {continue}if (getQues10(answers) !== answers[10]) {continue}result = JSON.parse(JSON.stringify(answers))}}
}let begin = new Date().getTime()
recurse(answers, 1)
console.log('\nresult:', result.length > 0 ? result.slice(1, result.length) : 'none')
console.log('time:', (new Date().getTime() - begin) / 1000 + 's')

PS: 一切尽在注释中,如感兴趣,欢迎评论。

转载于:https://my.oschina.net/lonelydawn/blog/1787017

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/46669.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信转发的文件服务器留存吗,微信转发这种视频会感染病毒泄露隐私?网警的查证结果来了...

原标题:微信转发这种视频会感染病毒泄露隐私?网警的查证结果来了 最近网上流传一条“紧急通知”,称微信上流传着一些必须转发后才能继续观看的视频,这些视频其实被内植病毒,一旦转发,机主隐私立马被泄露。 真有这么可怕? 不少转发过此类视频的网友非常担心。 目前,多地…

计算机网络日志查询,系统资源管理_百络网警内网管理软件_电脑配置统计,系统日志,日志查询...

管理作用 管理者可以使用百络网警内网gua灵活查询的分类统计网内计算机的硬件和软件信息&#xff0c;为IT资产管理提供方便和决策支持。也可以让IT管理者从多个角度来了解网络内每台计算机的全面的日志信息&#xff0c;为故障排除和网络管理提供有力支持。 功能描述 1、资产管理…

不履行网络安全保护义务被处罚!合肥网警发布“净网2020”行动执法典型案例

今年以来&#xff0c;合肥网安部门坚决贯彻上级公安机关和市局党委的决策部署&#xff0c;深入推进“净网2020”专项工作&#xff0c;整顿网络秩序&#xff0c;治理网络乱象&#xff0c;查处了一批违反网络安全相关法律规定的案件&#xff0c;实现网络秩序持续向好&#xff0c;…

注意了!浏览色情网站被短信通知检讨?可能是诈骗!

来源 | 澎湃新闻、九派视频等 针对“网传有学生用校园网浏览色情网站被学校学工部短信通知深刻检讨”一事&#xff0c;9月23日&#xff0c;电子科技大学党委学生工作部相关工作人员告诉记者&#xff0c;已关注到网络上传播的图片&#xff0c;经查&#xff0c;该校学工部未发过此…

网警如何查虚拟服务器,网警查高防云服务器

网警查高防云服务器 内容精选 换一换 云服务器网络异常、防火墙未放行本地远程桌面端口、云服务器CPU负载过高等场景均可能导致云服务器无法正常登录。本节操作介绍无法登录Linux弹性云服务器的排查思路。当您的云服务器无法远程登录时&#xff0c;我们建议您首先检查是否可以通…

阿里巴巴和腾讯考虑相互开放!

本文转载自IT之家 IT之家 7 月 14 日 外媒今日表示&#xff0c;越来越大的监管压力可能会导致科技巨头的运营方式发生重大转变。 据华尔街日报&#xff0c;有消息人士透露称&#xff0c;阿里巴巴的初步举措可能包括将腾讯的微信支付引入淘宝和天猫&#xff1b;双方都在分别制…

修改注册表导致无法登录到你的账户

修改注册表失败导致无法登录到你的账号 电脑环境太乱了&#xff0c;完全重置了一次&#xff0c;进去发现微软很烂的设定&#xff0c;把邮箱前六位作为cmd下的默认用户名 尝试修改该值&#xff0c;regedit下修改 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Curre…

最新开源多城市地方房产门户系统源码/ThinkPHP房产房市营销推广系统自适应移动端

最新开源多城市地方房产系统源码&#xff0c;房产房市营销推广系统去授权修复版自适应移动端 PHP版本号必须7.0之上才行&#xff0c;要不然会出错&#xff0c;这套源代码根据Thinkphp5.1开发的&#xff0c;功能齐全租房子&#xff0c;住宅小区&#xff0c;办公楼&#xff0c;二…

MiniGPT-4中文翻译

MiniGPT-4: 使用先进的大型语言模型增强视觉语言理解 作者为朱德尧、陈俊、沈晓倩、李翔和Mohamed Elhoseiny。*表示贡献相等。 所属机构为沙特阿拉伯国王科技大学。 在线演示 点击图像与MiniGPT-4聊天&#xff0c;了解有关您的图像的信息。 更多的例子可以在项目页面中找…

DevChat:将 GPT-4 无缝融入 VS Code,极致提升你的编程体验

文章目录 一、絮絮叨叨1.1 缘起1.2 嫌弃1.3 征服 二、认真聊聊2.1 老板给了少年一个任务2.2 少年祭出了 DevChat2.3 让 DevChat 帮着选 web 框架2.4 让 DevChat 帮着写代码2.5 让 DevChat 帮着写 Dockerfile2.6 让 DevChat 帮着封装 Helm Chart2.7 让 DevChat 帮着拉起 K8s 集群…

一个产品经理大骂程序员的帖子

大家好&#xff0c;我是校长。 今天看到一个帖子&#xff0c;是一个产品经理在吐槽程序员开发的问题。 大家可以看看这位产品经理骂的对吗&#xff1f; 当然了&#xff0c;在这类的帖子下&#xff0c;有我们程序员的各种反击和互怼&#xff0c;这很正常。 毕竟垃圾的产品经理和…

产品经理干久了,有哪些后遗症?

Hello&#xff0c;刀友们&#xff0c;大噶好&#xff01; 都说妇女能顶半边天&#xff0c;墨刀的一半功劳当然也少不了她们&#xff01; 墨墨姐专访了墨刀家的几位女神&#xff0c;身为女产品经理、女程序员&#xff0c;她们纷纷表示&#xff1a;这个职业干久了&#xff0c;都…

程序员跟产品经理打起来了,事情的真相是...

程序猿&#xff08;ID&#xff1a;imkuqin&#xff09; 猿妹 整编 综合自&#xff1a;南方都市报、网络等 程序员跟产品经理打架事件&#xff0c;当事人回应了&#xff01;真相是...... 昨天程序猿曾报道了一篇《程序员跟产品经理打起来了&#xff0c;这是一个需求引发的血案..…

老说程序员如何看产品经理,今天说说产品经理讨厌哪些程序员

老说程序员如何看产品经理&#xff0c;今天说说产品经理如何看程序员&#xff1a;每个职业都有难处。 1、这不能实现&#xff0c;那不能实现。 其实就是个饭桶。 产品经理最喜欢的是&#xff1a; 这个不易实现&#xff0c;要实现的话有什么不确定因素&#xff0c;要花费多大的成…

产品经理与程序员真的打起来了!来看看他们是如何“大战”的!

说起产品经理与程序员&#xff0c;简直就是一对冤家。 程序员觉得产品经理不尊重技术规则&#xff0c;产品经理埋怨程序员不尊重创作用心。 一边互怼&#xff0c;一边还要合作&#xff0c;今儿看到一篇老旧新闻&#xff0c; 寻思跟大家分享下 &#xff1a;有人忍不下去&#…

程序员如何与产品经理优雅的干架

早前&#xff0c;平安产险科技一名外包程序员和一名外包产品经理干架的视频几乎在互联网圈都传遍了&#xff0c;因为产品提了一个需求&#xff1a;要求用户App的主题颜色能根据手机壳自动调整。 首先说这个需求对于应用开发工程师来说&#xff0c;确实是有点奇葩&#xff0c;当…

这才是程序员想弄死产品经理的真正原因!!

你用户 服务员产品经理 大厨程序员 你去饭店&#xff0c;坐下来。 你&#xff1a;给我来份宫保鸡丁&#xff01; 服务员&#xff1a;好嘞&#xff01; ☝这叫原始需求 大厨做到一半 你&#xff1a;菜里不要放肉。 服务员&#xff1a;不放肉怎么做啊&#xff1f; 你&#xf…

什么是授权码,它又是如何设置?

1、什么是授权码&#xff1f; 授权码是QQ邮箱推出的&#xff0c;用于登录第三方客户端的专用密码。 适用于登录以下服务&#xff1a; POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务。 温馨提醒&#xff1a;为了你的帐户安全&#xff0c;更改QQ密码以及独立密码会触发授权码过期&…

hotmail 获取邮箱授权码

第一步&#xff1a;登录microsoft账户&#xff0c;进入到安全性页面。 https://account.microsoft.com/?langzh-CN&refdaccount.live.com&refplanding&mktZH-CN 第二步&#xff1a;检查是否开启双重认证。(如以开启直接进行第三步) 第三步:进入安全性 >应用密码…

oauth2使用授权码模式(authorization code)获取access_token

oauth2获取access_token的几种方式: 简化模式&#xff08;implicit&#xff09;&#xff1a;在redirect_url中传递access_token,oauth客户端运行在浏览器中。密码模式&#xff08;password&#xff09;&#xff1a;将用户名和密码传过去&#xff0c;直接获取access_token。客户…