阿里2014年校园题目最后一题答案及证明

2023-05-16

    该题目来自cdsn的一位网友(可见http://blog.csdn.net/thebestdavid/article/details/11975809),具体内容如下:

    在黑板上写下50个数字:1至50.在接下来的49轮操作中,每次做如下动作:选取两个黑板上的数字a和b,擦去,在黑板上写|b - a|。请问最后一次动作之后剩下数字可能是什么?为什么?


   答案:该题有25种可能,即50以内的25个奇数都可以是答案。

   证明:

           1. 首先证为什么答案是奇数

               令 S = 1+2+···+50 = 51*25 = 1275。每一次执行|b-a|操作,相当于是在S中减去两倍的min(a,b),即相当于执行操

           作S = S - 2 * min(a,b),也相当于在S中每次减掉一个偶数,因为S为奇数,所以执行49轮操作后,剩下的数字是个奇数。

           2. 证明50以内的所以25个奇数都有可能

               在证明之前我们先看4个规律:

               规律一:四个连续的自然数按题目所述的操作后可以使结果为0

              设有四个连续的自然数n,n+1,n+2,n+3 (n>=0),则可以通过(n+3)- (n+2)= 1,(n+1) - 1 = n,n - n =0,三步操作来得到0.

               规律二:两段连续的数:n,n+1,n+2和m,m+1,m+2(1<=n<n+2<m)按题目所述的操作后可以使结果为m-n

               按题目的操作进行m-n=m-n,(m+1)-(n+1)=m-n,(m+2)-(n+2)=m-n,(m-n)-(m-n)=0,(m-n)- 0=m-n.

               规律三:在50以内形式为4i+1(i>=0)的奇数N总可以找到一个形式也为4i+1的奇数M(M可以等于N),使得M+N=50

               令 N = 4i+1(i>=0),则 50 - (4i+1)= 49-4i = 48-4i+1=4*12 -4i+1=4*(12-i)+1=4j+1,这里因为N为50以内的数,所以j>=0,即0<4j+1<50.

               规律四:在50以内形式为4i+3(i>=0)的奇数N总可以找到一个形式也为4i+3的奇数M,使得M+N=50               

               令 N = 4i+3(i>=0),则 50 - (4i+3)= 47-4i = 44-4i+3=4*11 -4i+3=4*(11-i)+3=4j+3,这里因为N为50以内  的数,所以j>=0,即0<4j+3<50.


               下面我们将50以内的所有奇数分为两类,即4i+1(如1,5)和4i+3(如3,7)。

               (1)证n=4i+1(i>=0)奇数的可能性,即1,5,9,···,49

                由规律三可以找到一个奇数m=4j+1(j>=0),使得n+m=50,则有1,2,3, ···,m,···,50,显然在m前面的连续自然数有4j+1-1=4j个,这部分可以由规律一变为0;在m到50中间的连续自然数有50-(4j+1)-1=48-4j=4*(12-j),这部分数也可以由规律一变为0。此时,只剩m和50,执行50-m =n。

               (2) 证n=4i+3(i>=0)奇数的可能性,即3,7,11,···,47

                由规律四可以找到一个奇数m=4j+3(j>=0),使得n+m=50,则可以得到如规律二的两组数m-2,m-1,m和48,49,50。m-2=4j+1前面有4j个数,利用规律一变为0;m到48之间有48-(4j+3)-1=44 - 4j = 4*(11-j)个数,也可以利用规律一变为0,剩下的上面的m-2,m-1,m,48,49,50六个数,利用规律二可以得到50-m=n。


               以上只是我自己想到的一种证明方法,欢迎大家提出更好的方法,一起学习交流。



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

阿里2014年校园题目最后一题答案及证明 的相关文章

  • 计算机二进制的浮点表示法

    计算机二进制的浮点表示法 0 1 3 61 0 3 组成 符号位 0表示正 1表示负 指数位 2的n次方 xff0c n 43 127 对于4字节浮点数 xff0c 此处为127 再换算成二进制 尾数位 直接用 过程 将整数部分换算成二进制
  • STM32延时函数的三种方法——最好掌握第三种

    单片机编程过程中经常用到延时函数 xff0c 最常用的莫过于微秒级延时delay us 和毫秒级delay ms 1 普通延时法 这个比较简单 xff0c 让单片机做一些无关紧要的工作来打发时间 xff0c 经常用循环来实现 xff0c 不
  • 【常用模块】HC-05蓝牙串口通信模块使用详解(实例:手机蓝牙控制STM32单片机)

    HC 05蓝牙串口通信模块应该是使用最广泛的一种蓝牙模块之一了 为什么呢 xff1f 因为HC05模块是一款高性能主从一体蓝牙串口模块 xff0c 可以不用知道太多蓝牙相关知识就可以很好的上手 说白了 xff0c 只是个蓝牙转串口的设备 x
  • uln2003驱动电路

    一 uln2003有什么作用 ULN2003是大电流驱动阵列 xff0c 多用于单片机 智能仪表 PLC 数字量输出卡等控制电路中 可直接驱动继电器等负载 输入5VTTL电平 xff0c 输出可达500mA 50V ULN2003是高耐压
  • 简单超声波测距

    用到模块 hc sr04超声波模块 xff0c stm32开发板 本实验通过超声波测距模块得到长度 直接打印到窗口显示 xff0c 故主要用到定时器函数 xff0c 串口函数 hcsr04 c 只需要提供一个 10uS以上脉冲触发信号 xf
  • Javaer,你必须要了解的ExecutorService

    ExecutorService初接触 之前做的一个功能里有一个耗时操作 xff1a 处理数据库里对应的记录 xff0c 然后将每个处理后的结果做个排序 恕本人小白 xff0c 刚开始直接用单线程处理 xff01 你敢信 xff1f xff0
  • 平衡自行车-理论篇

    原文链接 xff1a http nicekwell net blog 20180121 ping heng zi xing che li lun pian html 一 模型分析 1 倒立摆2 自行车的平衡控制 2 1 怎样的状态才叫平衡2
  • 魔百盒CM201-1刷机教程

    家里有一块魔百盒CM201 1一直在家积灰 xff0c 由于看到网上教程可以刷各种系统 xff0c 所以想着玩来试试看 先刷一个电视版安卓系统看 盒子样子大概就是下面这样 xff1a 拿到手之后就迫不及待的将外壳拆掉了 xff0c 下面这样
  • RK3288刷机教程:安装Ubuntu 16.04

    网上有很多基于瑞芯微RK3288芯片的板子 xff0c 个人感觉配置都非常不错 xff01 然后就淘了两块玩玩 如下图所示 xff1a 然后可以看到 xff0c 各种接口也比较全乎 xff01 有HDMI和VGA视频输出接口 xff0c 两
  • ros串口通讯(读取串口数据)

    ros串口通讯是非常重要的通讯手段 xff0c 通常跟下位机或者各种usb口外设都是通过串口进行通讯的 那么我们跟着教程来学习一下如何读取手机通过无线串口发送给电脑的数据 这里我通过一个usb ttl工具将蓝牙连接到电脑上 xff0c 然后
  • No package ‘orocos-bfl‘ found

    目录 问题 xff1a 原因 xff1a 解决办法 xff1a 问题 xff1a 在编译ros工程的时候 xff0c 出现如下错误提示 xff1a No package 39 orocos bfl 39 found 如下图所示 xff1a
  • 人工智能(AI)入门

    人工智能的入门学习需要具备的知识结构 xff1a 一 编程语言选择 推荐python xff0c 原因有二 xff0c 其一 xff0c 语法简单易学 xff1b 其二 xff0c 有丰富的库支持 二 算法设计基础 人工智能的研究内容集中在
  • 卡尔曼滤波(Kalman filter)算法以及Arduino应用-mpu6050(导航贴)

    正在更新中 这篇文章要跟大家一起完全搞明白卡尔曼滤波 xff0c 连一个标点符号也不放过 xff0c 完完全全理解明白 如果你看不懂 xff0c 那说明我写的不好 本文是看了dr con博士的视频后做的 xff0c 建议可以去看看 如果哪里
  • ROS发布tf坐标

    我们写个小程序来发布一个坐标系 xff1a 坐标系消息格式 xff1a std msgs Header header 头信息 uint32 seq 序列号 time stamp 时间戳 string frame id 坐标 ID strin
  • pop_back()的用法及运行机制

    vector在c 43 43 中非常好用 xff0c 简单的说 xff0c vector是一个能够存放任意类型的动态数组 能够增加和压缩数据 一般使用push back 和pop back 函数将数据存放进容器末尾 如下例程 xff1a i
  • Gazebo启动不开

    问题 xff1a 按照书上的指引 xff0c 启动gazebo仿真软件 当然记得运行roscore rosrun gazebo ros gazebo 结果我在这个页面等了三分钟一点儿动静也没有 查阅资料 xff0c 说明这是因为model库
  • Gazebo仿真小例程一(通过例程熟悉整个仿真步骤)

    目录 1 编辑urdf文件 xff08 1 xff09 dynamic标签 xff08 2 xff09 gazebo标签 xff08 3 xff09 transmission标签 xff08 4 xff09 ros control插件 2
  • Arduino ide配置esp32硬件支持(配置esp32的arduino开发环境)

    ESP32学习导航帖 前言 当我们用arduino ide基于esp32开发板进行程序开发的时候 xff0c arduino ide按照默认安装之后是无法直接给esp32下载程序的 xff0c 也不支持esp32相关的库 这主要是默认的ar
  • AS5600磁编码器的使用以及简单的滤波算法(arduino)

    目录 前言 实践 示例一 xff1a 发现IIC设备 示例二 xff1a 读取AS5600原始数据 示例三 xff1a 对读取到的AS5600原始数据进行低通滤波 1 一阶滤波算法的原理 2 编程实现 前言 AS5600磁编码器常用于电机的
  • 平衡小车的控制算法(PID,LQR,MPC)及arduino程序导航贴

    目录 平衡小车电机位置测试小实验 1 编码器脉冲计数 PID控制算法 平衡小车PID调参实验 位置环 2 编码器计数转换角度 小车整体的动力学建模 通过特征值判断系统动态特性 龙伯格观测器 平衡小车电机位置测试小实验 1 编码器脉冲计数 c

随机推荐