六道面试中常见的智力题 来看看你会做几道?

简介:


下面的题目来自滴滴出行2017秋招题。这些题目是我自己觉得比较难或者比较容易出错的题目。

下面就是题目了,开始头脑风暴吧~~~

问题

问题

question one

桌上有12个黑球和1个白球围成一个圆,按一个方向顺序数到13就拿走对应的一个球,如果要求最后拿走的是白球,请问该从哪个求开始数数

question two

黄球和绿球各70个,放到2个空间足够大的盒子中。使用某种放置方法,使得随机取一个盒子,并从中随机取一个球时,得到黄球的概率最大,请问这时取得黄球的概率是多少?

question three

假如技术团队共有50人,其中会C语言的有36人,会JAVA语言的有44人,会GO语言的有32人,同时会这3种语言的至少有多少人?

question four

一个小猴子边上有100根香蕉,它要走过50米才能到家,每次它最多搬50根香蕉,(多了就被压死了),它每走1米就要吃掉一根,请问它最多能把多少根香蕉搬回家里。

question five

52张牌,四张A,随机打乱后问,从左到右一张一张翻直到出现第一张A,请问平均要翻几张牌?

question six

一个不透明的箱子里共有红,黄,蓝,绿,白五种颜色的小球,每种颜色的小球大小相同,质量相等,数量充足。每个人从篮子里抽出两个小球, 请问至少需要多少个人抽球,才能保证有两个人抽到的小球颜色相同?

答案

答案

question one

约瑟夫环递推公式:f(n, m) = (f(n - 1, m) + m) % n;(其中n是球的数量,m是报的数字)

f(1, 13) = 0;(当只有一个球的时候,最后拿走的球的下标为0)

f(2, 13) = (f(1, 13) + 13) % 2 = 1;(当有2个球的时候,最后拿走的球的下标为1)

f(3, 13) = (f(2, 13) + 13) % 3 = 2;(当有3个球的时候,最后拿走的球的下标为2)

...

f(13, 13) = (f(12, 13) + 13) % 13 = 7;(当有13个球的时候,最后拿走的球的下标为7)

需要注意的是,编号是从0开始的,f(13, 13) = 7,说明最后拿走的球是从最开始的球(编号为0)后面的第7个球;
也就是当顺时针方向白球后第6个黑球,逆时针方向白球后第6个黑球。(建议大家画图看一下,不然不容易弄懂,我在纸上画了好多遍画的还不是很满意,感觉自己画的很丑,所以就不贴在这里了)。

相关代码:

public class Test {

    public static void main(String[] args) {
        int x = Test.yuesefu(13, 13);
        System.out.println(x);
    }

    static int yuesefu(int n, int m) {
        if (n == 1) {
            return 0; // 这里返回下标,从0开始,只有一个元素就是剩余的元素0
        } else {
            return (yuesefu(n - 1, m) + m) % n; // 我们传入的n是总共多少个数
        }
    }
}

question two

一个黄球放在一个盒子里另外所有都放在另一个盒子里这样就会使得到黄球的概率最大:
1/2+(1/2)*(69/139)

question three

完全不会C语言的有14人,完全不会JAVA6人,完全不会GO18人,50-14-6-18=12

question four

需要找到一个点,当小猴子拿香蕉时能拿最多的香蕉(<=50),这样它可以一次到家,不用再往返。
设Y为要求的香蕉最大剩余数,X为要求的那个点(X米),可以列出方程组:

  1. Y=(100-3X) - (50-X)
  2. (100-3X)<=50

很容易求出Y=16

question five

考虑4张A在牌中的位置,他们把其他牌分成了5份(四个点把直线分成五段),完全随机的情况下,每份的平均长度为48/5=9.6,摸完这9.6张后,接下来的就是第一张A,
故平均需要摸9.6+1=10.6张,即11张。

question six

这个题相当于变相的球5种不同颜色的球,两两组合,会有多少种组合。
两个球颜色不一样:C5中取2=10
两个球的颜色相同: C5中取1=5
因而有15种颜色组合。那么有16人的时候必然会有重复的!

掘金沸点——年中总结(如果觉得我的文章不错的话,可以帮我的这个沸点点个赞吗???在此感激不尽了。)https://juejin.im/pin/5b38cba4e51d452bd7b56e04

如果你觉得我的文章对你有帮助话,欢迎关注我的微信公众号:"Java面试通关手册"(一个有温度的微信公众号,无广告,单纯技术分享,期待与你共同进步~~~坚持原创,分享美文,分享各种Java学习资源。)

我的公众号

目录
相关文章
技术面试常见智力题
了解技术面试常见智力题。
260 0
面试过程中遇到的智力题
1、滴滴三面真题 考虑一个双人游戏。游戏在一个圆桌上进行。每个游戏者都有足够多的硬币。他们需要在桌子上轮流放置硬币,每次必需且只能放置一枚硬币,要求硬币完全置于桌面内(不能有一部分悬在桌子外面),并且不能与原来放过的硬币重叠。
1672 0
|
Java
技术面试中常见的几道智力题 来看看你会做几道?
下面是大部分题目来自滴滴出行2017秋招题。有几道题目是我在做的时候没有想出来的,还有几道题目整理在这里单纯是为说明有一些智力方向的面试题并不是大家想的那么难,我们运用高中的知识就完全可以解决。
4961 0
|
4月前
|
存储 Java
【IO面试题 四】、介绍一下Java的序列化与反序列化
Java的序列化与反序列化允许对象通过实现Serializable接口转换成字节序列并存储或传输,之后可以通过ObjectInputStream和ObjectOutputStream的方法将这些字节序列恢复成对象。
|
1月前
|
存储 缓存 算法
面试官:单核 CPU 支持 Java 多线程吗?为什么?被问懵了!
本文介绍了多线程环境下的几个关键概念,包括时间片、超线程、上下文切换及其影响因素,以及线程调度的两种方式——抢占式调度和协同式调度。文章还讨论了减少上下文切换次数以提高多线程程序效率的方法,如无锁并发编程、使用CAS算法等,并提出了合理的线程数量配置策略,以平衡CPU利用率和线程切换开销。
面试官:单核 CPU 支持 Java 多线程吗?为什么?被问懵了!

热门文章

最新文章