六个数 1,2,2,3,4,5
1,5不相邻
第四个不能是3
用算法表示出它的所有可能的排列组合
java 代码
- package test;
-
- public class NewCalc {
-
- public NewCalc() {
-
- }
-
-
-
-
- public static void main(String[] args) {
-
- int[] initInt = {1,2,2,3,4,5};
- NewCalc nc = new NewCalc();
- nc.printData(initInt);
-
- }
-
- private void printData(int[] initInt)
- {
- int p0,p1,p2,p3,p4,p5;
- int count = 0;
-
- for(int a=0;a<initInt.length;a++)
- {
- p0 = initInt[a];
-
- int initInt1[] = removeData(initInt, a);
- for(int b=0;b<initInt1.length;b++)
- {
- p1 = initInt1[b];
- if(p0*p1 == 5)
- continue;
- int[] initInt2 = removeData(initInt1, b);
-
- for(int c=0;c<initInt2.length;c++)
- {
- p2 = initInt2[c];
- if(p1*p2 == 5)
- continue;
- int initInt3[] = removeData(initInt2, c);
- for(int d=0;d<initInt3.length;d++)
- {
- p3 = initInt3[d];
- if(p2*p3 == 5 || p3 == 3)
- continue;
- int initInt4[] = removeData(initInt3, d);
- for(int e=0;e<initInt4.length;e++)
- {
- p4 = initInt4[e];
- if(p3*p4 == 5)
- continue;
- int initInt5[] = removeData(initInt4, e);
- for(int f=0;f<initInt5.length;f++)
- {
- p5 = initInt5[f];
- if(p4*p5 == 5)
- continue;
- System.out.println("" + p0 + "" + p1 + "" + p2 + "" + "" + p3 + "" + p4 + "" + p5);
- count++;
-
- }
- }
- }
- }
- }
- }
- System.out.println("the quantity of these data is " + count);
- }
- private int[] removeData(int[] oldData, int i)
- {
- int j[] = new int[oldData.length -1];
- for(int k = 0,l = 0; k < oldData.length; k++)
- {
- if(i != k)
- {
- j[l] = oldData[k];
- l++;
- }
- }
- return j;
- }
-
- }
分享到:
相关推荐
这其实是一个经典的数学问题,通常称为“博弈论”中的一个问题。博弈论研究的是在有限规则的互动决策环境中,如何选择最佳策略以达到最优结果。 在这个纸牌游戏中,有两个玩家参与,每人每次可以取一张或两张纸牌,...
首先,回归是通过建立一个数学模型,该模型能够描述输入特征(自变量)与输出目标(因变量)之间的关系。在本案例中,自变量可能包括房屋的大小、卧室数量、地理位置等因素,而因变量则是房屋的租金。 回归算法有很...
算法这个词对于非计算机从业人士而言,似乎就是晦涩、神秘的代名词。其实,算法在日常生活中随处可见。...通读全书,读者可以了解到计算机编程与算法的基本理念,也能对简单常用的算法有一个大概的理解。
AC算法主要用于处理多关键字的匹配问题,通过构建一个树状有限状态自动机来实现高效的匹配。而BM算法则是一种快速的单关键字匹配算法,利用坏字符跳转和好后缀跳转策略来减少不必要的比较次数。 **AC-BM算法的主要...
给定的代码实现了一个简单的递归回溯算法来解决子集和问题。 1. **获取输入**: - 首先,用户输入一组整数的数量`len`。 - 接着,输入每个整数的值,并存储在一个动态分配的整型数组`data`中。 - 最后,用户输入...
算法这个词对于非计算机从业人士而言,似乎就是晦涩、神秘的代名词。其实,算法在日常生活中随处可见。...通读全书,读者可以了解到计算机编程与算法的基本理念,也能对简单常用的算法有一个大概的理解。
其实代码是次要的东西,要理解A星算法,建议先去看数学证明,否则看代码一点意义没有,因为看懂了证明,代码会变得非常简单。证明里有个核心点就是,评估函数值实际值,可以确保找到最短路径的证明,理解了这个证明...
穷举算法是最简单、最基础的算法之一,也是通常被认为非常没效率的算法。但是,穷举拥有很多优点,它在算法中占有一席之地。首先,穷举具有准确性,只要时间足够,正确的穷举得出的结论是绝对正确的;其次,穷举拥有...
本篇文章将详细介绍支持向量机的基本概念、数学原理以及其实现过程,并通过一个具体的例子来展示其工作流程。 #### 二、基础知识回顾 1. **决策边界**:在分类问题中,决策边界是指能够将不同类别的样本正确分开的...
假设数据集在一个mm维的欧式空间中,我们初始时,可随机选择kk个数据项作为这kk个簇的形心Ci,i∈{1,2,…k}Ci,i∈{1,2,…k},每个簇心代表的其实是一个簇,也就是一组数据项构成的集合。然后对所有的nn个数据项,计算...
)总之,这个工程仅仅是一个简单示例,告诉大家怎么样把课堂上学到的知识运用到实际编程当中去,工程中所用到的模块化思想,数据结构等知识都是大家学过的,大三了,希望大家在最后这段时间里把写程序的本领练就出来...
总的来说,这个项目为学习和理解进程调度算法提供了一个实践平台。通过JavaScript的实现,我们可以更直观地看到不同调度策略对系统性能的影响,并且可以方便地调整参数,探索不同场景下的最优策略。对于想要深入学习...
它的基本思想是通过一个线性函数对数据进行预测,然后通过Sigmoid函数(或称为逻辑函数)将连续的预测值转化为0到1之间的概率值,以此来判断属于某一类别的概率。 Sigmoid函数的数学表达式为:f(x) = 1 / (1 + e^(-...
在传统的社区检测算法中,每个节点通常被分配到一个社区,而在模糊社区检测中,节点可以同时属于多个社区,且对每个社区的隶属程度有明确的度量。这种灵活性使得Copra能够更好地反映现实世界中复杂的关系网络。 ...
本文介绍了一种基于置换算法的加密解密实现方案,并探讨了其实现细节。虽然置换算法因其简单的性质而在安全性方面存在局限性,但通过与其他加密技术的结合使用,依然能够在许多应用场景下发挥重要作用。未来的研究...
它通过构建一个前缀表(通常称为next数组),记录模式串中每个前缀的最大相同后缀的长度,以此来决定在不匹配时模式串应该移动多少位,而不是简单地将其重置到起始位置。这种方法使得KMP算法即使在最坏情况下也能...
粒子群算法是生物学家研究鸟类捕食创造的,把一只鸟比作成一个粒子,设想一个有20只秃鹫(粒子)的群体吧,秃鹫相互独立具有个体特征但又相互协助体现群体特征,现在我就是这20只中的一只好了(人丑),我现在和小...