2014年1月17日

错排问题【装错信封问题】【递归】

摘要: n个人,每个人都有一件礼物想送给他人,他们决定把礼物混在一起,然后每个人随机拿走一件,问恰好有m个人拿到的礼物恰好是自己的概率是多少? 输出结果保留8位小数,为了保证精度,我们用字符串作为返回类型。 输入:n,m (0<n<100, 0<=m<=n) 例如: n = 2,m = 1,输出:0.00000000; n = 99,m = 0,输出:0.36787944 ......注:上述题目来源http://club.csdn.net/module/club/student/programming_challenges分析:n个人的排列数是n的阶乘n!,随机选取m个人作为 阅读全文

posted @ 2014-01-17 20:38 华山青竹 阅读(10785) 评论(0) 推荐(1)

分巧克力【来源:CSDN线上编程挑战赛】——递归,费波那奇数列,迭代

摘要: /*======================================================================儿童节快到了,班长想要给班上的每个同学给一个巧克力,巧克力的形状是一个宽为2,长为n的长方形,由于巧克力太贵,班长就想把这个大块的巧克力分成许多 1*2(宽*长)的小块巧克力,这样每个人都能得到一份1*2的巧克力,现在给定巧克力的长为正整数n(1=3题目输入n计算并输出f(n),所以可以直接用递归去解。再看看,这个和费波那奇数列是一个样的,用迭代其实也可解决的。============================================== 阅读全文

posted @ 2014-01-17 19:37 华山青竹 阅读(882) 评论(0) 推荐(0)

求集合的幂集【转】

摘要: http://www.wutianqi.com/?p=1157集合A的幂集是由集合A的所有子集所组成的的集合。如:A={1,2,3},则A的幂集P(A)={{1,2,3},{1,2},{1,3},{1},{2,3},{2},{3},{ }}。求一个集合的幂集就是求一个集合的所有的子集,方法有穷举法,分治法,回溯等,这里主要介绍一下回溯法。回溯法是设计递归过程的一种重要的方法,它的求解过实质上是一个先序遍历一棵“状态树”的过程,只是这棵树不是遍历前预先建立的,而是隐含在遍历过程中的。幂集中的每个元素是一个集合,它或是空集,或含集合A中一个元素,或含集合A中两个元素…… 或等于集合A。反之,从集合 阅读全文

posted @ 2014-01-17 11:52 华山青竹 阅读(1398) 评论(0) 推荐(0)

poj 1597 Uniform Generator【生成指定范围内所有随机数】

摘要: 本文参考资料:http://hi.baidu.com/bnjyjncwbdbjnzr/item/1f997cfdd225d5d143c36a58题意:一个生成随机数的函数,Seed[x+1]=(seed[x]+STEP)%MOD输入step和mod,问能否生成0~MOD-1之间所有的数,是GoodChoice,否则BadChoice题意其实就是:给出S和M,求0*S%M,1*S%M,2*S%M......(M-1)*S%M能否组成一个集合包含0.1.。。。M-1;(这个是原题意改造而来);算法:判断两个数是否互质;or 暴力解决其实暴力完全可以解决这个问题(⊙﹏⊙b),只是其中用数学方法更加高 阅读全文

posted @ 2014-01-17 11:23 华山青竹 阅读(606) 评论(0) 推荐(0)

导航