面试之逻辑推理系列--从“分金条付工资”看逻辑推理题中的数学推导及反向推理的策略

本文主要是介绍面试之逻辑推理系列--从“分金条付工资”看逻辑推理题中的数学推导及反向推理的策略,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  
【序】智力推理题是外企笔试面试中常考的题目,变化多端,既然是推理,相信应该遵从一定逻辑,天下题目千千万,只有抓住每道问题的实质,不管出题者怎么变,我相信大家也可以以一敌百了。
 
另外,我觉得大家要是能够主动改变题目的条件,去寻找一定的规律,或者是反向思考问题,相信对于同类的题目就能够很快搞定了。
 
×××××××××××××××××××××××××××
从“分金条付工资”看逻辑推理题中的数学推导及反向推理的策略
Sailor_forever sailing_9806@163.com 转载请注明
 
问题:你让工人为你工作7天,回报是一根金条,这个金条平分成相连的7段,你必须在每天结束的时候 给他们一段。如果只允许你两次把金条弄断,你如何给你的工人付费?
 
切成1段,2段,和四段.
1:给出1.
2:给出2,还回1.
3:给出1.
4:给出4,还回3.
5:给出1.
6:给出2,还回1.
7:给出1.
 
7 1 2 4,分成三段,截2次,由上述“切成1段,2段,和四段”感觉1、2、4有一定的规律性,由此联想到了下面的递归等式
2^n -1 = (2^n -1)/(2 – 1 ) = 1 + 2 + …. 2^(n-1) 》》》S(n) – 1 = 1 + 2 + … S(n-1)
其中S(n) 2^n S(0) 1
等比数列求和的问题,即最后一项为前面所有项的和再加1
这里的加1就相对于每天的工资,故每天给新的金条时要将前面的相应项和的对应金条取回。
 
如果为15,则是截三次,分别为1 2 4 8,便可处理任意的整数了
 
以零换整的问题,钞票为什么设计成 1 2 5 10,估计是上述四个数可以以最小的张数组合任意的整数,哈哈,不会出现别人给你整票不能够找开的问题了。有兴趣的朋友可以用程序证明1 2 5 是最高效的方法,我猜是的,要不然为什么全世界都是这么设计的呢?
 
反向推理:一根金条平均分成N段相连,每天的工资为一段,最少截成几段才能每天完工后付给工人当天的工资?
2^(n-1) – 1 < N =< 2^n -1
最小的n值必须满足上述不等式
即(2^(n-1) – 1 ,2^n -1]半开半闭区间内的N值都至少分成n段才能解决当天完毕付工资问题
利用上述不等式,即可针对任意的N值快速算出分段次数了,不管面试者如何改动N值,都是易如反掌了,以一敌百,轻松搞定
 
参考鸣谢:
http://zhidao.baidu.com/question/114046.html?fr=qrl3

这篇关于面试之逻辑推理系列--从“分金条付工资”看逻辑推理题中的数学推导及反向推理的策略的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/284653

相关文章

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

在JS中的设计模式的单例模式、策略模式、代理模式、原型模式浅讲

1. 单例模式(Singleton Pattern) 确保一个类只有一个实例,并提供一个全局访问点。 示例代码: class Singleton {constructor() {if (Singleton.instance) {return Singleton.instance;}Singleton.instance = this;this.data = [];}addData(value)

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

uva 10014 Simple calculations(数学推导)

直接按照题意来推导最后的结果就行了。 开始的时候只做到了第一个推导,第二次没有继续下去。 代码: #include<stdio.h>int main(){int T, n, i;double a, aa, sum, temp, ans;scanf("%d", &T);while(T--){scanf("%d", &n);scanf("%lf", &first);scanf

uva 10025 The ? 1 ? 2 ? ... ? n = k problem(数学)

题意是    ?  1  ?  2  ?  ...  ?  n = k 式子中给k,? 处可以填 + 也可以填 - ,问最小满足条件的n。 e.g k = 12  - 1 + 2 + 3 + 4 + 5 + 6 - 7 = 12 with n = 7。 先给证明,令 S(n) = 1 + 2 + 3 + 4 + 5 + .... + n 暴搜n,搜出当 S(n) >=

uva 11044 Searching for Nessy(小学数学)

题意是给出一个n*m的格子,求出里面有多少个不重合的九宫格。 (rows / 3) * (columns / 3) K.o 代码: #include <stdio.h>int main(){int ncase;scanf("%d", &ncase);while (ncase--){int rows, columns;scanf("%d%d", &rows, &col

秋招最新大模型算法面试,熬夜都要肝完它

💥大家在面试大模型LLM这个板块的时候,不知道面试完会不会复盘、总结,做笔记的习惯,这份大模型算法岗面试八股笔记也帮助不少人拿到过offer ✨对于面试大模型算法工程师会有一定的帮助,都附有完整答案,熬夜也要看完,祝大家一臂之力 这份《大模型算法工程师面试题》已经上传CSDN,还有完整版的大模型 AI 学习资料,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

flume系列之:查看flume系统日志、查看统计flume日志类型、查看flume日志

遍历指定目录下多个文件查找指定内容 服务器系统日志会记录flume相关日志 cat /var/log/messages |grep -i oom 查找系统日志中关于flume的指定日志 import osdef search_string_in_files(directory, search_string):count = 0