排列组合问题
来源:互联网 发布:flac ape 播放软件 编辑:程序博客网 时间:2024/06/05 16:22
一、
(1)6*9的方格,左上角起点,右下角终点,请问一共多少种走法?
共走13步,5步向右8步向下。C513=C813=1287种
public class Robot { public int countWays(int x, int y) { //总共有x+y-2步,其中向右x-1次,向下y-1次 // write code here --x; --y; int count=1; for(int i=x+y;i>y;i--){ count=count*i;//往下走 } for(int i=2;i<=x;i++){ count=count/i; } return count; }}
(2)abcdefg排队,a排b左边不要求连续有多少种?A在b左边且相邻有多少种?
共7!种排法,其中一半a在b左边,一半a在b右边,所以第一问 7!/2
第二问:6!
(3)Abcdef排队,要求a与b、a与c不相邻的种数:
共6!种,ab相邻排法2*5!,ac相邻排法2*5!种,交集bac和cab即2*4!种。
所以问题共有:6!-(2*5!+2*5!)+2*4!种
(4)10个相同的球,放3个不同的桶,每桶至少一个,几种分法?
9个空插入2个挡板,C29
(5)10个不同的球,放3个不同的桶,几种情况?
每个球3中选择,所以103 种
(6)10个相同的糖,每天至少吃1个,有几种情况?
10个糖9个空
1天吃完--1种 C09
2天吃完--C19
3天吃完--C29
。。。
10天吃完--C99
以上所有相加
二、
(1)
给定一个等概率随机产生1~5的随机函数,除此之外,不能使用任何额外的随机机制,请实现等概率随机产生1~7的随机函数。(给定一个可调用的Random5::random()方法,可以等概率地随机产生1~5的随机函数)
这道题本质就是得到一串均匀分布且长度大于7的连续序列即可(甚至都不需要连续,只要保证能产生7个以上等概率的数即可),在这个序列里选中7个(或7的倍数个),若得到的数不是这7个中的,重新产生。这样这7个数的概率肯定是相同的。举例int num = 5 * rand5() + rand5(); //生成6~25的数,选取其中7~20这14个数,非这14个数重新生成,最后取余即可
public class Random7 { private static Random rand = new Random(123456); // 随机产生[1,5] private int rand5() { return 1 + rand.nextInt(5); } // 通过rand5实现rand7 public int randomNumber() { int num=rand5()*5+rand5(); while(num>20||num<7){ num=5*rand5()+rand5(); } return num%7+1; }}
-------------------------------------------------------------------------------------------------------------
- 排列组合问题
- 排列组合问题
- 排列组合问题
- 排列组合问题
- 排列组合问题
- 排列组合问题
- 排列组合问题
- 排列组合问题
- 排列组合问题
- 排列组合问题
- 排列组合问题
- 排列组合问题
- 排列组合问题
- 排列组合问题
- 排列组合问题
- 一个排列组合的问题
- 第一题:排列组合问题
- 字符串的排列组合问题
- hihocoder 1151 : 骨牌覆盖问题·二(找规律+矩阵快速幂)
- URL模式设置
- MyBatis Like
- BZOJ 1738: [Usaco2005 mar]Ombrophobic Bovines 发抖的牛 二分 网络流
- 【OpenCV入门指南】第四篇 图像的二值化
- 排列组合问题
- PAT乙级1032. 挖掘机技术哪家强(20)
- Android SDK 1-23各版本代号和别名
- 东软JavaWeb实训记-DAY3-web开发(h5+css+js+常用控件+正则表达式)
- mysql启动提示 access denied for user root@localhost(using password:YES)
- static和const关键字的特性总结
- Spring AOP详解
- maven项目eclipse配置
- Linux su和sudo命令的区别,并获得root权限