「java神仙组合」java求组合函数

博主:adminadmin 2023-03-21 08:41:10 522

本篇文章给大家谈谈java神仙组合,以及java求组合函数对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java实现排列组合输出

完成了一种实现,发给你参考下。

不过感觉应该还有更好的办法,有时间我会继续研究下.

import java.util.ArrayList;

import java.util.Arrays;

import java.util.HashSet;

import java.util.List;

import java.util.Set;

public class TestQiuhe {

    //集合a{1,2,3,5,7,10},输出不多于4个元素(不重复)的加和为22的组合。

    public static void main(String[] args) {

        int[] nums={1,2,3,5,7,10};

        int l = nums.length;

        Listint[] results=new ArrayListint[]();

        for(int i1=0;i1l;i1++){

            for(int i2=0;i2l;i2++){

                if(nums[i1]==22){

                    results.add(new int[]{nums[i1]});

                }

                if(i2!=i1){

                    if(nums[i1]+nums[i2]==22){

                        results.add(new int[]{nums[i1],nums[i2]});

                    }

                    for(int i3=0;i3l;i3++){

                        if(i3!=i1  i3!=i2){

                            if(nums[i1]+nums[i2]+nums[i3]==22){

                                results.add(new int[]{nums[i1],nums[i2],nums[i3]});

                            }

                            for(int i4=0;i4l;i4++){

                                if(i4!=i1  i4!= i2  i4!=i3){

                                    if(nums[i1]+nums[i2]+nums[i3]+nums[i4]==22){

                                        results.add(new int[]{nums[i1],nums[i2],nums[i3],nums[i4]});

                                    }

                                }

                            }

                        }

                    }

                }

            }

        }

        //去重

        SetString reSet=new HashSet();

        for(int[] r:results){

            Arrays.sort(r);

            reSet.add(Arrays.toString(r));

        }

        System.out.println("一共得到结果集:"+reSet.size());

        System.out.println(reSet);

    }

}

运行结果:

一共得到结果集:2

[[5, 7, 10], [2, 3, 7, 10]]

Java如何实现动态的组合, Thinking in Java 这本书中 说过 动态的组合就是聚合, 谁能给我举个简单例子?

在面向对象中,类与类之间的关系有泛化,依赖,关联,聚合,组合几种。

其中,聚合和组合都属于关联。

在具体编程中:

依赖表现为如果A类依赖于B,则B体现为A的局部变量,方法参数或静态方法的调用。

eg:

class B{

Static void function1(){};

void function2(){};

}

public class A{

public static void main(String[] args){

....

B.function1();//A类中调用了B类的静态方法

....

}

}

聚合和组合都属于关联,很难区分,但是只要记住一点,区分它们就容易多了:

处于聚合关系的两个类生命周期不同步,则是聚合关系;处于组合关系的两个类的生命周期同步;

eg:

聚合关系,当A创建的时候,B不一定创建;当A消亡时,B不一定消亡。

class A{

private B;

}

class B{

....

}

组合关系,当创建一个A对象时,也会创建一个B对象;当A对象消亡时,作为A的属性的B对象也会消亡。

class A{

private b=new B();

....

}

class B{

....

}

JAVA排列组合算法如题:用x、y,求出指定长度的所有排列组合。

按照你的要求编写的求x,y指定长度的所有排列组合的Java程序如下

import java.util.ArrayList;

import java.util.List;

public class EE {

 public static void combination(ListString list, String sNumbers, String sPath, int ALen)

 {

     if (sPath.length()== ALen)

     {

      list.add(sPath);

         return;

     }

     for(int i=0;isNumbers.length();i++)

     {

      

      combination(list,sNumbers,sPath +sNumbers.substring(i,i+1), ALen);

     }

 }

 public static void main(String[] args) {

  ListString output = new ArrayListString();

     System.out.println("组合");

     combination(output,"xy", "", 5);

     for(String s: output)

      System.out.print(s+" ");

     System.out.println();

     System.out.println("共"+output.size()+"个");

 }

}

运行结果

组合

xxxxx xxxxy xxxyx xxxyy xxyxx xxyxy xxyyx xxyyy xyxxx xyxxy xyxyx xyxyy xyyxx xyyxy xyyyx xyyyy yxxxx yxxxy yxxyx yxxyy yxyxx yxyxy yxyyx yxyyy yyxxx yyxxy yyxyx yyxyy yyyxx yyyxy yyyyx yyyyy

共32个

java里面关于多重条件,排列组合的条件怎么快捷操作?

我不知道有没有专门关于排列组合的特别方法,我想应该是没有的。计算机的思路本来就是一个个条件筛选,即遍历。

有个思路比if会稍微好一些,用 switch/case,最外层判断A,有4个case,case中再嵌套 switch/case来判断B,再用B的case来嵌套 switch/case来判断C,再用C的case来嵌套 switch/case来判断D。

java排列组合算法?

//这个程序是以前用高分求来的,现在稍作修改,呵呵

public class Zuhe {

public static void main(String[] args) {

String s = "122345";//这里是要用到的所有数组成的一个字符串,其它字符同样适用

char[] c = s.toCharArray();

new Zuhe().zuhe(c,c.length,0);

System.out.println("可能的组合数:"+kk);

}

static int kk=0;

private void zuhe(char[] array, int n, int k) {

if (n == k) {

if(array[2]!='4'){//第三个位置不能出现4

String str = new String(array);

if(str.indexOf("53")0str.indexOf("35")0){//3,5不能连续出现

System.out.println(str);

++kk;

}

}

} else {

for (int i = k; i n; i++) {

swap(array, k, i);

zuhe(array, n, k + 1);

swap(array, i, k);

}

}

}

private void swap(char[] a, int x, int y) {

char temp = a[x];

a[x] = a[y];

a[y] = temp;

}

}

========结果=========

122345

122543

123245

123254

123425

123452

125432

125423

125243

125234

122345

122543

123245

123254

123425

123452

125432

125423

125243

125234

132245

132254

132425

132452

132542

132524

132245

132254

132425

132452

132542

132524

142325

142523

143225

143252

143225

143252

142325

142523

145232

145223

145223

145232

152342

152324

152432

152423

152243

152234

152342

152324

152432

152423

152243

152234

212345

212543

213245

213254

213425

213452

215432

215423

215243

215234

221345

221543

223145

223154

223415

223451

225431

225413

225143

225134

232145

232154

232415

232451

232541

232514

231245

231254

231425

231452

231542

231524

242315

242513

243215

243251

243125

243152

241325

241523

245132

245123

245213

245231

252341

252314

252431

252413

252143

252134

251342

251324

251432

251423

251243

251234

221345

221543

223145

223154

223415

223451

225431

225413

225143

225134

212345

212543

213245

213254

213425

213452

215432

215423

215243

215234

231245

231254

231425

231452

231542

231524

232145

232154

232415

232451

232541

232514

241325

241523

243125

243152

243215

243251

242315

242513

245231

245213

245123

245132

251342

251324

251432

251423

251243

251234

252341

252314

252431

252413

252143

252134

322145

322154

322415

322451

322541

322514

321245

321254

321425

321452

321542

321524

325142

325124

325412

325421

325241

325214

322145

322154

322415

322451

322541

322514

321245

321254

321425

321452

321542

321524

325142

325124

325412

325421

325241

325214

312245

312254

312425

312452

312542

312524

312245

312254

312425

312452

312542

312524

315242

315224

315422

315422

315242

315224

342125

342152

342215

342251

342521

342512

341225

341252

341225

341252

341522

341522

342125

342152

342215

342251

342521

342512

345122

345122

345212

345221

345221

345212

422315

422513

423215

423251

423125

423152

421325

421523

425132

425123

425213

425231

422315

422513

423215

423251

423125

423152

421325

421523

425132

425123

425213

425231

432215

432251

432125

432152

432512

432521

432215

432251

432125

432152

432512

432521

431225

431252

431225

431252

431522

431522

412325

412523

413225

413252

413225

413252

412325

412523

415232

415223

415223

415232

452312

452321

452132

452123

452213

452231

451322

451322

451232

451223

451223

451232

452312

452321

452132

452123

452213

452231

522341

522314

522431

522413

522143

522134

523241

523214

523421

523412

523142

523124

521342

521324

521432

521423

521243

521234

522341

522314

522431

522413

522143

522134

523241

523214

523421

523412

523142

523124

521342

521324

521432

521423

521243

521234

542321

542312

542231

542213

542123

542132

543221

543212

543221

543212

543122

543122

542321

542312

542231

542213

542123

542132

541322

541322

541232

541223

541223

541232

512342

512324

512432

512423

512243

512234

513242

513224

513422

513422

513242

513224

512342

512324

512432

512423

512243

512234

可能的组合数:396

为什么java哥被p图

java哥被p图是因为java哥在直播是搞笑,表情丰富,网友对他的表情很感兴趣,就p图,可制作成表情包。java哥指的虚拟主播Luxiem组合中Luca。

他在一次直播时,疑似不小心喊出了前世的名字“java”,因此网友们都喊他“java哥”

关于java神仙组合和java求组合函数的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。