zoukankan      html  css  js  c++  java
  • An interview question from MicroStrategy

    去年校招时的一道面试题,觉得蛮有意思,贴出来。

    Question:

    Spy start at a, during an interval he moves |b| to right when b >=0; moves |b| to left when b <0; I can ask the spy if he is in position x, if he is then I win.


    Answer:


    Here is how I analyze this problem:

    1) First assume a = 0; then b could be 0, 1, 2….

    i. |b| = 0 , I can guess 0 at first interval just caught the spy;

    ii. |b| = 1 , then b could be 1 or -1, so I can guess 1 at first interval ; if not caught the spy, guess -2 at second interval and I will catch the spy;

    iii. |b| = 2 , then b could be 2 or -2, so I can guess 2 at first interval ; if not caught the spy, guess -4 at second interval and I will catch the spy;

    iv. ……

    To sum it up ,I will take this list to catch the spy with n intervals,n start at 1:

    0*1, 1*2, (-1)*3, (2)*4, (-2)*5, 3*6, (-3)*7, 4*8, (-4)*9 …… ((n/2)(-1)^n)*n;


    2) But |a| can have many values not only zero ,when a=0,this is one-dimensional problem. We can regard (a, b) as a point in a Plane coordinate system .

      


    This make the (a,b) in many squares, and we find the spy’s location from the most inside square to outside, and in every square we start at the point(|a|,0) as the red point showed in the picture. The same to the first problem is the time interval increases in Linear growth. And we can use the point’s value to calculate the location referenced to the point ,and can get the spy.



    For example
    1) (0,0): 0 + 0*1(this is the number of intervals);

    2) (1,0): 1+ 0*2; (1,1): 1+ 1*3; (0,1): 0+ 1*4; (-1,1): -1+ 1*5……

    3) As the picture shows;

  • 相关阅读:
    润乾V4导出TXT时自定义分隔符
    aix系统下的websphere的静默安装
    润乾V4报表放入WEBINF保护目录下如何实现
    初创公司谁来当你们的运维
    无密码身份验证:安全、简单且部署快速
    ASP .NET 如何在 SQL 查询层面实现分页
    世界那么大,你要去看看!
    你真的知道如何定义性能要求么?
    node-firefox 二三事
    轻轻修改配置文件完成 OpenStack 监控
  • 原文地址:https://www.cnblogs.com/liuhao/p/3721399.html
Copyright © 2011-2022 走看看