`
xingqiliudehuanghun
  • 浏览: 7141 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

腾讯面试题:计算抽取的数字

阅读更多
/**-------------------------
* n1和n2满足如下条件:
*    1. n1    + n2    = sum;
*    2. n1*n1 + n2*n2 = sqSum;
* 用角坐标表示n1、n2后可以将
* 条件合并为: sqrt(sqSum)*sin(z) + sqrt(sqSum)*cos(z) = sum
* 化 简 为  :1 + 2*sin(z)*cos(z) = sum*sum/sqSum
* 化 简 为  :sin(2*z) = (sum * sum)/sqSum - 1
* 所以弧度为:z = Math.asin( (sum * sum)/sqSum - 1)/2 
* 所以n1    : Math.floor(Math.sin(sqrt(sqSum) * sin(z)))
* 所以n2    : Math.floor(Math.cos(sqrt(sqSum) * sin(z)))
*-------------------------*/

function analyse(){
  //模拟抽取
  var a   = [];
  var max = 100000;
  var n1  = Math.floor(Math.random() * (max+1));
  var n2  = Math.floor(Math.random() * (max+1));
  for(var i=1; i<=max; i++){
      if( i != n1 && i != n2 ){
          a.push(i);
      }
  }

  //计算两数和与平方和
  var sum   = (max + 1)*(max/2);
  var sqSum = max*(max+1)*(2*max+1)/6; //平方和公式: n(n+1)(2n+1)/6
  var num;
  for(var i=0,len=a.length; i<len; i++){
    num    = a[i];
    sum   -= num;
    sqSum -= num*num;
  }

  //计算两数
  var z = Math.asin(sum*sum/sqSum - 1)/2;
  var r = Math.sqrt(sqSum);
  var n3= Math.round(r * Math.sin(z));
  var n4= Math.round(r * Math.cos(z));
  
  //返回
  return [
    [n1, n2].sort().join(','),
    [n3, n4].sort().join(',')
  ]
}

var i, a;
for(i=0; i<1000; i++){
  a = analyse();
  if(a[0] != a[1]){
    console.error(i + '\tnot passed test: ' + a);
  }
}
分享到:
评论

相关推荐

    2020语言与智能技术竞赛:事件抽取任务

    2020语言与智能技术竞赛:事件抽取任务2020语言与智能技术竞赛:事件抽取任务2020语言与智能技术竞赛:事件抽取任务2020语言与智能技术竞赛:事件抽取任务2020语言与智能技术竞赛:事件抽取任务2020语言与智能技术...

    python笔记50-面试题:交换圣诞节礼物.docx

    【Python面试题:交换圣诞节礼物】是一个典型的编程问题,它涉及到随机数生成、字典操作以及循环控制等Python基础知识。在此题中,我们要创建一个模拟圣诞礼物交换的游戏,确保每个人都能拿到别人送出的礼物,而不会...

    转:数据抽取核心问题

    数据抽取是大数据处理和分析中的一个关键步骤,它涉及到从各种源系统中获取并转换数据,以便进行后续的分析和挖掘。在这个过程中,核心问题主要包括数据的获取、清洗、转换和加载,通常简称为ETL(Extract, ...

    2020语言与智能技术竞赛:事件抽取任务.zip

    2020语言与智能技术竞赛:事件抽取任务.zip

    读书笔记:数据抽取组件用来从HTML、JSON、XML等原始数据中按照自定义的规则抽取想要的数据.zip

    读书笔记:数据抽取组件用来从HTML、JSON、XML等原始数据中按照自定义的规则抽取想要的数据

    随机抽取数字.exe

    随机抽取数字,随机抽奖等!随机抽取数字,随机抽奖等!随机抽取数字,随机抽奖等!随机抽取数字,随机抽奖等

    评标专家抽取系统

    "评标专家抽取系统"是一种专门用于招标过程中的专业软件工具,它旨在确保评标过程的公正、公平和透明。评标专家的选取是招标环节中的关键步骤,因为这些专家的决策直接影响到招标结果的公正性。传统的专家抽取方式...

    一个简单的抽取数字的抽奖小程序

    【标题】:“一个简单的抽取数字的抽奖小程序” 这个标题揭示了我们讨论的是一款基于编程语言C#开发的小型软件,它的主要功能是进行数字抽取,用以实现抽奖或随机选择等目的。这样的程序通常适用于小型活动,比如...

    2021年HCIE数通面试题库,HCIE面试宝典题库面试新增项目新题已更新完整版

    用于2021年HCIE数通3.0版本面试。考面试之前需要通过笔试和...放平心态调整好,2021年面试的题库都在面试题库中,从面试题库里面抽取三道,希望大家能够平常多练习,2-3月备考通过IE很稳,助力大家一次通过HCIE面试。

    蓝桥杯14届计算思维国赛U8组包含真题

    #### 第三题:数字出现次数统计 - **知识点概述**: - **计数问题**:本题要求统计从1到223之间数字2出现的次数。 - **解题思路**:可以将这个问题分为几个部分来考虑,例如2出现在百位、十位以及个位的情况,并...

    基于python的开放领域事件抽取系统设计与实现.docx

    2. 社交媒体事件抽取:事件抽取系统可以用于自动抽取社交媒体事件信息,供市场营销和公关人员使用。 3. 客户反馈事件抽取:事件抽取系统可以用于自动抽取客户反馈事件信息,供客服和市场营销人员使用。 4. 智能...

    小升初数学复习题精选.doc

    - 第3题:可能抽取到的4件产品都是次品。 - 第4题:圆形纸对折两次,得到的扇形圆心角度数是90度。 - 第5题:任何三角形的内角和都是180度。 - 第6题:盐水的浓度计算是盐的质量除以盐水的总质量。 4. **计算题...

    有奖随机抽取数字

    每轮循环中,都会从数组中移除已经抽取的数字,确保不会重复抽取同一个数字。 ### 关键技术点二:HTML结构及元素 #### 2.1 HTML基本结构 HTML部分定义了一个简单的页面结构,包括一个文本区域用于显示结果和一个...

    数据仓库工程师面试题.docx

    数据仓库工程师面试题 下面是对数据仓库的详细介绍和知识点总结: 什么是数据仓库? 数据仓库(Data Warehouse)是指一个大型的存储数据的集合,用于解决企业数据分析和决策目的。它将来自多个数据源的数据进行...

    广东罗定泗纶中学九年级上期末考试试卷精选.doc

    - 第10题:概率计算,从扑克牌中抽取特定点数的概率。 3. 解答题:涵盖多项式计算、几何图形构造、方程解法、图形旋转、概率计算等。 - 第11题:可能需要进行多项式的乘法或化简。 - 第12题:同样可能涉及多项式...

    2014年3月计算机二级C语言题库_南开100题

    本题库是针对 2014 年 3 月份考试的上机考试题库,本题库共有 100 套题目( 每套题 目包含 3 道题:一道程序填空题、一道程序修改题、一道程序设计题 ) ,真实考试的时候, 考生输入准考证后计算机随机为你抽取一套...

    知识图谱从哪里来:实体关系抽取的现状与未来.md

    清华大学刘知远老师和学生韩旭、高天宇所写的关于知识图谱相关的介绍。 机器之心获授权转载,此文为.md笔记...沿着实体关系抽取需要进一步探索的四个主要方向,介绍这四个方面的发展现状和挑战,以及 一些思考和努力。

    2020语言与智能技术竞赛:事件抽取任务 -- 联合抽取baseline.zip

    计算机类竞赛源码

    多级数字抽取滤波器设计与MATLAB仿真研究.pdf

    MATLAB作为一种强大的数值计算和仿真工具,在多级数字抽取滤波器的设计与仿真过程中发挥着重要作用。MATLAB提供了丰富的函数库和工具箱,如Signal Processing Toolbox等,可以帮助研究人员快速实现各种滤波器的设计...

Global site tag (gtag.js) - Google Analytics