随笔分类 -  Algorithms In Daily Life

谁能找出毒药?
摘要:今天,和一个朋友谈论了一个有趣的问题: 有1000个一模一样的瓶子,其中有999瓶是普通的水,有一瓶是毒药。任何喝下毒药的生物都会在一星期之后死亡。现在,你只有10只小白鼠和一星期的时间,如何检验出哪个瓶子里有毒药? 眨看之下,貌似:”有一堆砝码,有一个不准,最少几次称量可以找出这个砝码?“ 但这问题关键是:”你只有一次验证答案的机会!“ 不管你采取什么措施,你只能揭晓答案一次。 我是学计算机的,所以对数字比较敏感。210= 1024!所以,我先假设有1024个瓶子,其中只有1瓶毒药。 1. 将1024分成两个512,即512a和512b。从512a的各瓶中,各取1滴水,给1号小... 阅读全文

posted @ 2012-04-01 19:14 Newwayy 阅读(3704) 评论(25) 推荐(6)

买书算法分析
摘要:前天在亚马逊上买书,单张发票超过100(不管是200还是300)送20购物券(多次购买可重复优惠),我买了10本书,总价305(价格分别为:31.9,44.7,17.4,24.6,27,19.5,64.8,40.2,16.3,19.2),想最大优惠,能否组合成3次购买?更一般地:给出一个整型数组Arr和某整数A,请将Arr分成不同的组合,每个组合内数据之和不小于A,那么能划分成的组合数最多是多少?编程求出每个组合的元素。如我的购书组合为:(31.9+24.6+27+19.5=103.0),(44.7+17.4+40.2=102.3),(64.8+19.2+16.3=100.3) 阅读全文

posted @ 2011-12-23 10:08 Newwayy 阅读(218) 评论(0) 推荐(0)