不容易系列之一(递推+错排公式)
来源:互联网 发布:中国最牛的程序员 编辑:程序博客网 时间:2024/06/05 21:09
大家常常感慨,要做好一件事情真的不容易,确实,失败比成功容易多了!
做好“一件”事情尚且不易,若想永远成功而总从不失败,那更是难上加难了,就像花钱总是比挣钱容易的道理一样。
话虽这样说,我还是要告诉大家,要想失败到一定程度也是不容易的。比如,我高中的时候,就有一个神奇的女生,在英语考试的时候,竟然把40个单项选择题全部做错了!大家都学过概率论,应该知道出现这种情况的概率,所以至今我都觉得这是一件神奇的事情。如果套用一句经典的评语,我们可以这样总结:一个人做错一道选择题并不难,难的是全部做错,一个不对。
不幸的是,这种小概率事件又发生了,而且就在我们身边:
事情是这样的——HDU有个网名叫做8006的男性同学,结交网友无数,最近该同学玩起了浪漫,同时给n个网友每人写了一封信,这都没什么,要命的是,他竟然把所有的信都装错了信封!注意了,是全部装错哟!
现在的问题是:请大家帮可怜的8006同学计算一下,一共有多少种可能的错误方式呢?
错排公式:f(n)=(n-1)(f(n-1)+f(n-2))
推导:先选出编号为k的信,把它放在n位,剩下的是f(n-1),共有n-1种选k的方法,所以是(n-1)*f(n-1)
不把它放在n位,把它放在j位,j就可以放在k位了,剩下的共有
f(n-2)的放法
import java.math.BigInteger;import java.util.Scanner;public class Main { static BigInteger[] arr=new BigInteger[260]; static BigInteger solve(int a) { if(arr[a]!=null)return arr[a]; if(a==2)return new BigInteger("1"); if(a==1)return new BigInteger("0"); return arr[a]=solve(a-1).multiply(new BigInteger(Integer.toString(a-1))).add(solve(a-2).multiply(new BigInteger(Integer.toString(a-1)))); } public static void main(String[] args) { Scanner scan=new Scanner(System.in); while(scan.hasNext()) { int a=scan.nextInt(); System.out.println(solve(a)); } }}
阅读全文
0 0
- 不容易系列之一(递推+错排公式)
- HDOJ 1465 不容易系列之一 【错排公式 递推】
- hdu 1465 不容易系列之一(递推。错排公式)
- 题目1451:不容易系列之一(递推)错排公式
- 不容易系列之一(错排公式)
- 不容易系列之一(递推公式)
- 不容易系列之一(hdu1465)错排+递推
- HDU-不容易系列之一-错排公式
- HDOJ 1465: 不容易系列之一(错排公式)
- 题目1451:不容易系列之一(错排公式)
- 杭电 1465 不容易系列之一(错排公式)
- JD 1451:不容易系列之一(错排公式)
- HDOJ 1465 不容易系列之一(错排公式)
- HDU 1465 不容易系列之一(错排公式)
- hdu 1465 不容易系列之一(错排公式)
- HDU 1465 不容易系列之一(错排公式)
- HDU 1465 不容易系列之一(错排公式推导)
- hdu1465 不容易系列之一 错排 递推
- JAVA中URL传递中文参数,\%解析 取值是乱码的解决办法
- Android Studio
- 部署在本地的项目实现公网访问--基于Localtunnel实现内网穿透
- 集成百度地图、百度Logo、标尺、缩放控件的显示和隐藏
- 那些年被误导的 Session
- 不容易系列之一(递推+错排公式)
- Cube Stacking -- 并查集
- 数据库 事务、事务的特性、事务的隔离
- Go的异常处理 defer, panic, recover
- 百度语音合成(TTS)离在线融合,包括-102问题的完美解决!
- Ubuntu创建Git仓库并上传到GitHub
- JavaSE_面向对象3
- 【总结】RPC框架Dubbo深入分析
- find the most comfortable road HDU