2020年3月23日阿里笔试题[通俗易懂]

2020年3月23日阿里笔试题[通俗易懂]2020年3月23日阿里笔试题题目描述题目分析  这是阿里的第二场笔试,本来觉得没啥好写的,一道排列组合,一道迷宫。没有什么发挥的空间。但是后来在和大家讨论的过程中,把这道题的公司给敲出来了,但是这公式也不能白敲,干脆写一篇文章总结一下。题目描述一共n个人,从中选出任意个人组成一队,我们不妨记为k,再从k个人选出一人做队长。题目分析  这是一个典型的排列组合问题,从n个人选出k个,可…

大家好,又见面了,我是你们的朋友全栈君。

2020年3月23日阿里笔试题

  这是阿里的第二场笔试,本来觉得没啥好写的,一道排列组合,一道迷宫。没有什么发挥的空间。但是后来在和大家讨论的过程中,把这道题的公司给敲出来了,但是这公式也不能白敲,干脆写一篇文章总结一下。

题目描述

一共n个人,从中选出任意个人组成一队,我们不妨记为k,再从k个人选出一人做队长。

题目分析

  这是一个典型的排列组合问题,从n个人选出k个,可能是 C n k C_n^k Cnk,从k个人选出一个队长,种类数是 k k k,但是k可以是 1 1 1~ n n n,所以这个题的结果就是 ∑ k = 1 n k C n k \sum_{k=1}^nkC_n^k k=1nkCnk,这样写代码是可以过一些例子的。
  但是不会全过,因为复杂度过大。当然可以在求 C n k C_n^k Cnk的时候利用 C n k = C n k − 1 ∗ n + 1 − k k C_n^k=C_n^{k-1}*\frac{n+1-k}{k} Cnk=Cnk1kn+1k这个公式,因为 C n k − 1 C_n^{k-1} Cnk1我们也是要计算的,这样就会减少一定的复杂度,然后又能多过一些例子。
  我们还会想到 C n k C_n^k Cnk= C n n − k C_n^{n-k} Cnnk,这样又可以少一些计算。我们这时候就需要把 k ∗ C n k 和 ( n − k ) ∗ C n n − k k*C_n^k和(n-k)*C_n^{n-k} kCnk(nk)Cnnk一起计算,发现正好等于 n ∗ C n k n*C_n^k nCnk或者 n ∗ C n n − k n*C_n^{n-k} nCnnk
  到这里如果熟悉排列组合的同学,可能会想到了如果把数列反着再加一次。
在这里插入图片描述

  如果说这个题有什么需要总结的,就是一旦确定一个题目是排列组合的问题之后,可以去考虑使用公式优化计算量,当然时间紧迫,没有时间的话,就很难去优化了,还是需要注意平时多积累。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/143075.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【C#】Unity3D中的C#编程初级[通俗易懂]

    【C#】Unity3D中的C#编程初级[通俗易懂]一、前言这篇文章主要是给零基础想要Unity入门的关于C#编程的一些意见二、参考文章unity中的C#编程-零基础(Unity2017)三、正文1.什么是C#编程语言?微软官方出版2.编程工具(IDE)3.创建第一个C#代码4.场景的保存和脚本的保存5.关于日志输出(指控制输出,其中Log有三类:正常、警告、错误输出)6.变量7.方法的定义和调…

    2022年5月13日
    65
  • dhcp snooping option 82_dhcpsnooping的原理配置案例

    dhcp snooping option 82_dhcpsnooping的原理配置案例DHCPSnooping-option82relay的原理及实例一、采用DHCP服务的常见问题架设DHCP服务器可以为客户端自动分配IP地址、掩码、默认网关、DNS服务器等网络参数,简化了网络配置,提高了管理效率。但在DHCP服务的管理上存在一些问题,常见的有:●DHCPServer的冒充●DHCPServer的DOS,如DHCP耗竭●某些用户随便指定IP地址,造成IP地址冲突1、D…

    2022年10月15日
    2
  • eclispe中创建maven项目使用spring报java.lang.ClassNotFoundException: org.springframework.web.filter.Charact「建议收藏」

    eclispe中创建maven项目使用spring报java.lang.ClassNotFoundException: org.springframework.web.filter.Charact「建议收藏」报错如下:信息: Starting Servlet Engine: Apache Tomcat/7.0.57九月 24, 2018 6:44:04 下午 org.apache.catalina.util.SessionIdGenerator createSecureRandom信息: Creation of SecureRandom instance for session ID gen…

    2022年6月13日
    42
  • android之AsyncQueryHandler详解

    官方文档对AsyncQueryHandler的解释非常简洁A helper class to help make handling asynchronousContentResolver queries easier下面解释一番,其实明白之后就会发现,真的就是一句话的事情而已.AsyncQueryHandler:异步的查询操作帮助类,其实它同样可以处理增删改,查询其API便可知

    2022年3月9日
    40
  • shell数组变量赋值_形参可以是常量变量或表达式

    shell数组变量赋值_形参可以是常量变量或表达式1.定义数组bash支持一维数组(不支持多维数组),并且没有限定数组的大小。类似于C语言,数组元素的下标由0开始编号。获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于0。在Shell中,用括号来表示数组,数组元素用”空格”符号分割开。定义数组的一般形式为:【示例】定义数组:array_name=(value0value1value2value3)数组的值类型任意,个数不限可以不使用连续的下标,而且下标的范围没有限制:array_name=([0]

    2025年6月26日
    2
  • 中国首批230135个绿色电力证书核发

    中国首批230135个绿色电力证书核发

    2022年3月4日
    67

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号