![](https://img-blog.csdnimg.cn/direct/33a107aa0a5f4ec9a68ae4358362b25f.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法
文章平均质量分 74
Algorithm
普兰店拉马努金
正找工.
展开
-
【java/数学/排列组合】现有2个红球,2个黄球,3个白球,3个黑球,同色球不加区分,将十个球排成一列,有多少种不同的方法?
接下来就是:十个位置里选出2个放红球,8个位置里选出2个放黄球,6个位置里选出3个放白球,3个位置里选三个放黑球,总的方案是C10_2*C8_2*C6_3*C3_3=25200个。你也可以十个位置里选出3个放黑球,7个位置里选出3个放白球,4个位置里选出2个放黄球,2个位置里选2个放红球,总的方案是C10_3*C7_3*C4_2*C2_2=25200个。String[] plans= {"黑","黑","黑","黑","黑","黑","黑","黑","黑","黑"};plans[i]="白";原创 2023-09-11 13:27:50 · 326 阅读 · 0 评论 -
【Java/算法/排列】用数字0,1,2,3,4,5,6组成没有重复数字的四位数,其中个位、十位和百位上的数字之和为偶数的四位数共有几个?
用数字0,1,2,3,4,5,6组成没有重复数字的四位数,其中个位、十位和百位上的数字之和为偶数的四位数共有几个?思路:将0,1,2,3,4,5,6选4进行排列,去除掉首位为0和个十百位之和不是偶数的,剩下的就是结果。* 从n个元素中取出m个元素,按照一定的顺序排成一列。所以,总数=3*(24+24+54+6)=3*108=324种。* 这个构造函数是用于全排列的(n=m=数组长度)当千位为135之一,假设为1,剩下023456给个十百位。当千位为246之一,假设为2,剩下013456给个十百位。原创 2023-05-01 04:13:50 · 377 阅读 · 0 评论 -
【Java/算法/排列】求所有仅由1,2,3,4,5组成的没有重复数字的四位数的和
也就是说,120个数的千位加起来是(1*24+2*24+3*24+4*24+5*24)*1000=15*24*1000。同样的道理,120个数的百位加起来是(1*24+2*24+3*24+4*24+5*24)*100=15*24*100。120个数的十位加起来是(1*24+2*24+3*24+4*24+5*24)*10=15*24*10。120个数的个位加起来是(1*24+2*24+3*24+4*24+5*24)*1=15*24*1。* 求所有仅由1,2,3,4,5组成的没有重复数字的四位数的和。原创 2023-04-29 21:13:55 · 229 阅读 · 0 评论 -
【Java/算法/排列】用于产生排列结果的工具类Arranger
System.out.println("\n四选二排列示例:");System.out.println("四元素全排列示例:");* 从n个元素中取出m个元素,按照一定的顺序排成一列。* 这个构造函数是用于部分排列的(m<n=数组长度)* 这个构造函数是用于全排列的(n=m=数组长度)* @param arr 原始元素数组。* @param selCnt 选多少个。// 保存在内部的对原始元素数组的引用。// 总计多少元素,此即数组长度。* @arr 原始元素数组。* 用于产生排列结果的工具类。原创 2023-04-29 17:13:27 · 208 阅读 · 0 评论 -
【230429-2】用三重循环输出立方体的八个顶点坐标
边长为a的立方体一角在(0,0,0),其对角在(a,a,a),求所有顶点的坐标。* 这是一个可重排列问题,在2阶集合{"0","a"}中进行3次选取。* 使用三重循环即可解决此问题。* 输出立方体的八个顶点坐标。原创 2023-04-29 10:03:00 · 101 阅读 · 0 评论 -
【java/算法/可重排列】用三重循环输出八卦
如果在同一个n阶集合中依次进行k次选取,并且选过的元素还可以再选,则一共有n的k次方种不同的选取方式。如果在同一个n阶集合中依次进行k次选取,并且选过的元素还可以再选,则一共有n的k次方种不同的选取方式。用程序解决可重排列问题,可以用一重循环应对一次选取,k次选取就是k重循环,而n阶集合对应长度为n的一维数组。* 按上面的定义,八卦即在一个2阶集合中进行3次选取,总计8(2的3次方)种选取方式.final String[] arr={"阴","阳"};* 八卦是三字符可重复排列的一种简单应用。原创 2023-04-29 09:12:52 · 104 阅读 · 0 评论 -
【java/算法/排列组合】用程序算法解决排列组合问题的一般思路
若需要名单,得用一String数组存储名字,一等长int数组存储名字对应的下标,然后或用。若不需要名单,只需要数量,使用数量多重循环方式,穷举出符合条件的数量即可(),之后再用条件过滤,剩下的就是符合条件的名单;原创 2023-04-29 08:17:03 · 101 阅读 · 0 评论 -
【Java/算法/组合】将20把相同的椅子分别放入编号为1,2,3,4的四个会议室内,要求每个会议室中放入的椅子数不小于它的编号数,问有多少种不同的放法?
剩下十四张椅子分四份,相当于3个隔板去插十四张椅子中的13个空,那么方案是C13_3=13*12*11/321=13*11*2=286。先将0张椅子放入1号房间,1张椅子放入2号房间,2张椅子放入3号房间,3张椅子放入4号房间,这以后再放椅子就不存在违背题设的情况了。这个程序实际只需要找到和为14的四个自然数,完成此任务只需四重循环即可,不需要Combination组合器的参与。得到这四个数后,加上0,1,2,3输出即可。原创 2023-04-28 17:33:03 · 178 阅读 · 0 评论 -
【Java/算法/组合】马路上有编号为1,2,3,4,......,10的十盏路灯,为省钱准备关掉其中的三盏,但又不能关掉相邻的两盏或三盏,而且两端的灯也不能关,求满足条件的关灯方案?
马路上有编号为1,2,3,4,......,10的十盏路灯,为省钱准备关掉其中的三盏,但又不能关掉相邻的两盏或三盏,而且两端的灯也不能关,求满足条件的关灯方案?做一个从1到8的数组,用组合器进行8选三,以不连续为过滤条件去掉连续关闭的情况,剩下的就是符合条件的关灯方案。反过来想以下,把7盏打开的灯放好,把三盏关闭的灯往打开的灯中间插,就不存在连续的问题。7盏灯外侧不能插,只能插在中间的六个空,这六个空就是三盏关闭的灯的插入位置。6个空里选三个空插关闭的灯,方案是C63=6*5*4/3/2/1=20种。原创 2023-04-27 08:03:36 · 204 阅读 · 0 评论 -
【Java/算法/组合】楼梯共有12级台阶,每步可上1级,也可上2级,要用8步走完这12级台阶,问共有多少种不同的走法?并请列举出这些走法
比如说,{0,1,2,3,4,5,6,7}进行8选4后得到[0,1,2,3],那么{"1","1","1","1","1","1","1","1"}将变成{"2","2","2","2","1","1","1","1"},这就是这一步对应的走法。思路:做一个数组{0,1,2,3,4,5,6,7}进行8选4,选出4个元素作为下标,把数组{"1","1","1","1","1","1","1","1"}中得对应项置为2,此即走法。8选4即C84=8*7*6*5/4*3*2*1=2*35=70次。原创 2023-04-26 16:26:31 · 367 阅读 · 0 评论 -
【Java/算法/排列】ABCDE共5人站成一排,如果B必须站在A的右边(AB不必相邻),那么不同的排法有几种,请列举出来。
五人全排有A55种,B在A的右侧的几率和B在左侧的几率是一样的,所以排法为A55/2=5*4*3*2*1/2=5*4*3=60种。如果A在右二,如_ _ _ A _,那么B只有1个地方可选,如_ _ _ A B,其余CDE全排,这种情况排法为A33;如果A在正中,如_ _ A _ _,那么B有2个地方可选,其余CDE全排,这种情况排法为C21A33;如果A在左二,如_ A _ _ _,那么B有3个地方可选,其余CDE全排,这种情况排法为C31A33;思路:五人全排,用A下标<B小标当过滤器,筛完即可。原创 2023-04-26 08:10:36 · 346 阅读 · 0 评论 -
【Java/算法】ABCDE五人排一排,如果AB必相邻且B在A的右边,那么不同的排法有几种?
ABCDE五人排一排,如果AB必相邻且B在A的右边,那么不同的排法有几种?AB捆绑,内部不再排序,与CDE全排,得A44=24种排法。* @param initialList 初始链表。* 使用递归进行全排列,结果放在results中。* @param raws 原始元素数组。// 保存在内部的原始元素数组的引用。* 用于产生数组全排列结果的工具类。* 获得结果链表的引用。原创 2023-04-25 21:12:43 · 120 阅读 · 0 评论 -
【Java算法】由数字1,2,3,4,5组成,没有重复数字的五位数,其中小于50000的偶数共有几个? 并请列出这些数字
由数字1,2,3,4,5组成,没有重复数字的五位数,其中小于50000的偶数共有几个?Sum=C21*C31*A33=2*3*3*2*1=6*6=36种。2.万位:1,2,3,4皆可,但要去掉放在个位的一个,C31;思路:将12345全排列,过滤掉首数为五的和尾数不是偶数的。* 使用递归进行全排列,结果放在results中。* @param raws 原始元素数组。// 保存在内部的原始元素数组的引用。* 用于产生数组全排列结果的工具类。* 获得结果链表的引用。1.个位:2,4选一,C21;原创 2023-04-25 13:08:48 · 441 阅读 · 0 评论 -
【java/算法】在3男6女中选5人参加活动,要求男女都有。则不同的选取方式有几种?并列出符合条件的名单
final String[] names= {"勇","力","刚","芳","雪","梦","曼","燕","娇"};比如把数组定为"勇","力","刚","芳","雪","梦","曼","燕","娇",明显下标小于3者为男,大于等于3者为女。总数Sum=9*8*7*6*5/5/4/3/2/1-6*5*4*3*2/5/4/3/2/1=126-6=120种。* 在3男6女中选5人参加活动,要求男女都有。* @param arr 进行组合的元素。* 数学中排列组合中的组合器实现。* 用于存放中间结果。原创 2023-04-25 12:43:14 · 78 阅读 · 0 评论