前端智勇大冲关-第四关-12小球称重问题

简介: 有关前端智勇大冲关已给出了前三道题的解答,开始给出第四道题的解答,可能会有些出入,仅供大家的参考与学习。如果有误,请大家帮忙更正,谢谢。 balls[]   定义长度为12的数组status   定义小球的轻重状态   -1代表轻   0代表正常  1代表重 随机生成-1或1两种状态的一种,并随机放在balls数组中,并记录这个坏球在数组中的位置 下面是我给出了一个简单的模拟示例。

有关前端智勇大冲关已给出了前三道题的解答,开始给出第四道题的解答,可能会有些出入,仅供大家的参考与学习。如果有误,请大家帮忙更正,谢谢。

balls[]   定义长度为12的数组
status   定义小球的轻重状态   -1代表轻   0代表正常  1代表重

随机生成-1或1两种状态的一种,并随机放在balls数组中,并记录这个坏球在数组中的位置

下面是我给出了一个简单的模拟示例。

简单模拟测试:

假如   mStatusType = -1;   坏球为轻

         mBallPos = 3;  坏球的位置放在第四个

         leftBalls = [0,1,2,3];   记录位置,分别是1,2,3,4这几个球

         rightBalls = [4,5,6,7];  记录位置,分别是5,6,7,8这几个球

调用   resultMsg(leftBalls,rightBalls);

 

    var balls =new Array();  // 存储小球
    var status = [-1,1];     // -1表示轻   1表示重
    var mStatusNum = parseInt(Math.random()*2);  // 随机生成0或1
    var mBallPos = parseInt(Math.random()*12);   // 坏球的位置
    var mStatusType = status[mStatusNum];   // 坏球轻重信息
    var leftBalls = new Array();  // 称左边包含的球
    var rightBalls = new Array(); // 称右边包含的球
            
    /**
     *函数initBalls初始化这组12个小球
     */
    function initBalls(){
        for(var i=0;i<12;i++){
            if(i===mBallPos){
                balls[i]=mStatusType;
            }
            else{
                balls[i]=0;
            }
        }
    }
            
    /**
     *函数isBall判断是否含有坏球,有返回true,无反回false
     *参数arr指数组,指数组,称的一边包含的球
     *参数mpos指坏球的位置
     */
    function isBall(arr,mpos){   
        for(var i=0,j=arr.length;i<j;i++){
            if(arr[i]===mpos){
                return true;
            }
        }
        return false;
    }
            
    /**
     * 函数resultMsg显示结果,返回string类型提示轻重信息
     * 参数leftBalls指数组,代表称中左边球
     * 参数rightBalls指数组,代表称中右边球
     */
    function resultMsg(leftBalls,rightBalls){
        if(leftBalls.length>rightBalls.length){  //那边球多那边重
            console.log("左边比右边重");
        }
        else if(leftBalls.length<rightBalls.length){
            console.log("左边比右边轻");
        }
        else{    //那边含有坏球(根据位置判断),并根据-1或1判断或轻或重
            if(!isBall(leftBalls,mBallPos)&&!isBall(rightBalls,mBallPos)){
                console.log("左右两边一样重");
            }
            else if(isBall(leftBalls,mBallPos)){
                if(mStatusType===-1){
                    console.log("左边比右边轻")
                }
                else{
                    console.log("左边比右边重");
                }
            }
            else if(isBall(rightBalls,mBallPos)){
                if(mStatusType===-1){
                    console.log("左边比右边重")
                }
                else{
                    console.log("左边比右边轻");
                }
            }
        }
    }


关于逆推请参考
有12个小球,有一个质量和其它十一个不一样,不知道是重还是轻。用一个天秤称三次,把这个质量不同的球给区别出来(来源:12小球称重问题)
将12个小球编号 1~C
1 对比 1234 & 5678
  1.1 1234 = 5678,则坏球在9ABC中,第二次称 1239 & 56AB
    1.1.1 1239 = 56AB,则坏球是C
    1.1.2 1239 > 56AB,则坏球在9AB中,且 9 > AB 第三次称 A & B
      1.1.2.1 A = B, 坏球是9, 9偏重
      1.1.2.2 A > B, 坏球是B, B偏轻
      1.1.2.3 A < B, 坏球是A, A偏轻
    1.1.3 1239 < 56AB,则坏球在9AB中, 且 9 < AB 第三次称 A & B
      1.1.3.1 A = B, 坏球是9, 9偏轻
      1.1.3.2 A > B, 坏球是A, A偏重
      1.1.3.3 A < B, 坏球是B, B偏重
  1.2 1234 > 5678, 则坏球在1~8中,且要么1234中有偏重的坏球,要么5678中有偏轻的坏球,称 2345 & ABC1
    1.2.1 2345 = ABC1,则坏球在678中,第三次称 6 & 7
      1.2.1.1 6 = 7, 则坏球是8,8偏轻
      1.2.1.2 6 > 7,则坏球是7, 7偏轻
      1.2.1.3 6 < 7, 则坏球是6, 6偏轻
    1.2.2 2345 > ABC1,则坏球在234中,因为如果234是正常,说明 5 > 1,显然1.2 1234 > 5678 不成立,第三次称 2 & 3
      1.2.2.1 2 = 3, 4是坏球,4偏重
      1.2.2.2 2 > 3, 2是坏球,2偏重
      1.2.2.3 2 < 3, 3是坏球,3偏重
    1.2.3 2345 < ABC1,说明坏球在51中,因为如果51正常,说明 234 < ABC ,显然 1.2 1234 > 5678不成立,克制 5 < 1,第三次称1 & A
      1.2.3.1 1 = A,坏球是5,5偏轻
      1.2.3.2 1 > A,坏球是1,1偏重
      1.2.3.3 1 < A,此情况不存在
  1.3 1234 < 5678,判断方法同1.2

目录
相关文章
|
前端开发 JavaScript
第30/90步《前端篇》第7章 重构背景音乐、小球和挡板 第21课
今天学习《前端篇》第7章 重构背景音乐、小球和挡板 第21课 创建挡板模块,这节课尝试将挡板模板化。游戏中共有两块挡板(左挡板与右挡板),两块挡板的行为不同,一块由系统控制自动移动,一块由玩家控制,但它们的渲染逻辑是致的。
192 0
|
前端开发 测试技术
第29/90步《前端篇》第7章 重构背景音乐、小球和挡板 第20课
今天学习《前端篇》第7章 重构背景音乐、小球和挡板 第20课 创建小球模块,这节课我们将小球对象模块化。
138 0
|
前端开发 JavaScript
第28/90步《前端篇》第7章 重构背景音乐、小球和挡板 第19课
今天学习《前端篇》第7章 重构背景音乐、小球和挡板 第19课 创建背景音乐模块,这节课我们正式开始模式化重构,将背景音乐、小球、挡板、分数、背景等游戏元素全部模块化,首先从背景音乐对象开始。
189 0
|
前端开发
前端智勇大闯关-第二季-第三题
前端智勇大闯关-第二季-第三题10的世界在我们的世界里,字母A很好理解键盘兄表示65无压力CPU表示01000001才是王道 1、题目中描述的三句话:二进制与十进制与A之间的相互转换2、在textarea元素中包含了一长串的二进制编码(0和1的世界)3、下图展示由二进制码转换成字母的过程每八位一组由二进制转化十进制,由十进制找到对应的asc码,将这些asc码每四个组成一组,再转换成十进制,最后,把十进制转成成asc码,对应的字母相应的就出来了。
863 0
|
前端开发 Web App开发 UED
前端智勇大闯关-第二季-第一题
新春之际,新朋友老朋友,祝大家新年快乐。哈哈,给大家拜个晚年。UED 前端智勇大闯关-第二季(http://ued.taobao.com/quiz2/) 这里给出了第一的答案及实现原理,与大家探讨,可随便吐槽。
931 0
|
前端开发 JavaScript
前端智勇大闯关-第二季-第二题
元宵节快乐,哈哈哈。。。搬运工之解 HTML:  CSS: // textarea样式 .mtextarea{ height: 140px; width: 260px; border: 1px solid #CCCCCC; margin-left:...
922 0
|
前端开发
前端智勇大冲关
有关淘宝ued前端智勇大冲关的解答一、先给出每一关的地址第一关:http://ued.taobao.com/quiz/index.php 第二关:http://ued.taobao.com/quiz/?ZzCMnTucu2VlfOC2xqrWQL4FY20 第三关:http://ued.taobao.com/quiz/?PGKPkziU7DRlfOC2xqrWQbMOY2w 第四关:http://ued.taobao.com/quiz/?PDSLnWnHvWplfOC2xqrWRLIFY2o 二、分析每一关的解答 第一关:考察css问题,考点在于字体颜色与背景颜色一样。
1237 0
|
存储 人工智能 前端开发
前端大模型应用笔记(三):Vue3+Antdv+transformers+本地模型实现浏览器端侧增强搜索
本文介绍了一个纯前端实现的增强列表搜索应用,通过使用Transformer模型,实现了更智能的搜索功能,如使用“番茄”可以搜索到“西红柿”。项目基于Vue3和Ant Design Vue,使用了Xenova的bge-base-zh-v1.5模型。文章详细介绍了从环境搭建、数据准备到具体实现的全过程,并展示了实际效果和待改进点。
1024 14
|
JavaScript 前端开发 程序员
前端学习笔记——node.js
前端学习笔记——node.js
326 0
|
人工智能 自然语言处理 运维
前端大模型应用笔记(一):两个指令反过来说大模型就理解不了啦?或许该让第三者插足啦 -通过引入中间LLM预处理用户输入以提高多任务处理能力
本文探讨了在多任务处理场景下,自然语言指令解析的困境及解决方案。通过增加一个LLM解析层,将复杂的指令拆解为多个明确的步骤,明确操作类型与对象识别,处理任务依赖关系,并将自然语言转化为具体的工具命令,从而提高指令解析的准确性和执行效率。
456 6

热门文章

最新文章

  • 1
    前端如何存储数据:Cookie、LocalStorage 与 SessionStorage 全面解析
  • 2
    前端工程化演进之路:从手工作坊到AI驱动的智能化开发
  • 3
    Vue 3 + TypeScript 现代前端开发最佳实践(2025版指南)
  • 4
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
  • 5
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
  • 6
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(一):CSS发展史;CSS样式表的引入;CSS选择器使用,附带案例介绍
  • 7
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
  • 8
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
  • 9
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
  • 10
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式