笔试题:求保证实现相同球色的最少步骤

话说刚刚看了排列组合,结果刚看了这个题,下意识的就想求出总的排列种数之类的,之后再怎么怎么,结果发现其实很简单的题目被我想复杂了

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

A.6
B.11
C.13
D.16
E.21
F.26

如题,小球的颜色一共有5种,每次抽出两个小球,那么颜色组合类型有两种:

①小球颜色不相同:C(5,2)=10 (种)

②小球颜色相同:5 (种)

那么要保证有两个人抽到的小球颜色全部相同,首先要实现全部不同的最大种数10+5=15(次),即最大的实现次数在15+1=16 (次)

时间: 2024-10-06 00:23:23

笔试题:求保证实现相同球色的最少步骤的相关文章

[2013百度软件研发笔试题] 求字符串中连续出现同样字符的最大值

题目完整描写叙述为:用递归的方式实现一个求字符串中连续出现同样字符的最大值.如aaabbcc,连续出现a的最大值为3,abbc,连续出现字符最大的值为2. 下面是我想出来的方法: #include <iostream> using namespace std; #define MAX(a, b) (a) > (b) ? (a) : (b) int Get(char *s, int n, int m)  //字符指针, 当前最长串, max最长串 {     if(*(s+1) == '\

[2013百度软件研发笔试题] 求字符串中连续出现相同字符的最大值

题目完整描述为:用递归的方式实现一个求字符串中连续出现相同字符的最大值,如aaabbcc,连续出现a的最大值为3,abbc,连续出现字符最大的值为2. 以下是我想出来的方法: #include <iostream> using namespace std; #define MAX(a, b) (a) > (b) ? (a) : (b) int Get(char *s, int n, int m)  //字符指针, 当前最长串, max最长串 {     if(*(s+1) == '\0'

阿里巴巴笔试题求最小三元组距离

已知三个升序整数数组a[l], b[m]和c[n].请在三个数组中各找一个元素,是的组成的三元组距离最小.三元组的距离定义是:假设a[i].b[j]和c[k]是一个三元组,那么距离为: Distance = max(|a[ I ] – b[ j ]|, |a[ I ] – c[ k ]|, |b[ j ] – c[ k ]|) 请设计一个求最小三元组距离的最优算法,并分析时间复杂度. #include<iostream> using namespace std; int Max(int a,i

[算法]滴滴笔试题——求最大子串和(O(n)复杂度)

扫描法.一次扫描数组即可得出答案,复杂度O(n).这种方法用文字描述不容易说清楚,下面用每一步运算的图示来表达.伪代码如下: maxsofar=end=0; for i=[0,n) end=max(end+x[i],0) maxsofar=max(maxsofar,end) 即使后面没有这样的值了,maxsofar中还保存了原来的最大和,有恃无恐.这里的一条重要原则是目前end的值必须>0,如果<0,则不用考虑,立刻放弃end目前的值,将它置为0,并且把end的指针指向58. 以此类推下去,最

笔试题: 不使用中间变量求const字符串长度,即实现求字符串长度库函数strlen函数

笔试题: 不使用中间变量求const字符串长度,即实现求字符串长度库函数strlen函数. 函数接口声明如下:int my_strlen(const char *p); strlen函数实际完成的功能是从代表该字符串的第一个地址开始遍历,直到遇到结束符'\0'. 而返回的长度大小不包括'\0'. #include <stdio.h> #include <assert.h> //使用中间变量 //int my_strlen(const  char *str) //{ //   ass

试题系列四(袋中有6红球 3黄球 3绿球,从中取6个球,求所有拿到球的颜色的可能 c(12,6))

1.袋中有6红球 3黄球 3绿球,从中取6个球,求所有拿到球的颜色的可能 c(12,6) 1 #include<stdio.h> 2 3 int main(int argc, char** argv) 4 { 5 int red = 6; 6 int yellow = 3; 7 int green = 3; 8 int i = 0; 9 int j = 0; 10 11 for ( i = 0; i <= yellow; i++) 12 { 13 for (j = 0; j <=

阿里笔试题记录(Android客户端部分)

阿里笔试题记录(Android客户端部分) 选择题 结果应该是选择 80,8 思路: - 指针的值都是一个个地址,而地址是用无符号整型值来表示的,也就是unsigned int.因此一个指针类型变量的大小就是unsigned int类型的大小. - 64位系统,一个地址占用的二进制位数为64(8字节),32位系统,地址的二进制位数32(4字节).参考64位操作系统的指针不都是64位吗 32位cpu和64位cpu,这个位数指的是数据字长,而不是地址字长.两者没有必然的数值上的联系.处理器字长是指处

C/C++ 笔试题

/////转自http://blog.csdn.net/suxinpingtao51/article/details/8015147#userconsent# 微软亚洲技术中心的面试题!!! 1.进程和线程的差别. 线程是指进程内的一个执行单元,也是进程内的可调度实体.与进程的区别:(1)调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位(2)并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可并发执行(3)拥有资源:进程是拥有资源的独立单位,线程不拥有系统资源,但可以访问

搜狗2015C++工程师笔试题解题分析

试卷链接:搜狗2015 C++工程师笔试题. 1.假设整数0x12345678 存放在内存地址0x0开始的连续四个字节中 (即地址0x0到 0x3). 那么在以Little Endian字节序存储的memory中,地址0x3的地方存放的字节是: 0x12 0x34 0x56 0x78 分析:选D.小端法和大端法. a) Little-Endian就是低位字节排放在内存的低地址端, 高位字节排放在内存的高地址端. b) Big-Endian就是高位字节排放在内存的低地址端,低位字节排放在内存的高地