1. 程式人生 > >java實現從M個元素中取N個元素的所有組合(數學中的組合問題)

java實現從M個元素中取N個元素的所有組合(數學中的組合問題)

package reverse;


public class Cat {
public static void main(String[] args) {

int[] s = {4, 2, 1, 3, 0, 5};

String tmp = "";
for(int i=1;i<s.length-1;i++){
tmp = tmp + s[i];
}

String str = tmp;
int length = 2;
printAll(str, length, "");
System.out.println(ss);
}

private static String ss = "";

private static void printAll(String number, int length, String s2) {

if(s2.length() == length){
ss = ss + s2 + ",";

System.out.println(s2 + "  ");
}else{
for(int i = 0;i < number.length(); i++){
System.out.println(new StringBuffer(number).substring(i+1).toString());
System.out.println(length);
System.out.println(s2 + number.charAt(i));
printAll(new StringBuffer(number).substring(i+1).toString(), length, s2 + number.charAt(i));
}
}

}
}

相關推薦

java實現M元素N元素所有組合(數學組合問題)

package reverse; public class Cat {public static void main(String[] args) {int[] s = {4, 2, 1, 3, 0, 5};String tmp = "";for(int i=1;i<

Java實現m各不相同的元素取出n,並進行全排列。

  最近在看面試題的時候發現,一些基礎的演算法都記不住了,只是能大概說出個原理….為了加深記憶,這裡對一些簡單的演算法題進行一個歸納。   下面的程式碼主要解決的問題是:從m個各不相同的元素中取出n個,進行全排列,得到所有可能的結果。   即:輸入為字元陣列

python筆記10-切片(list或字符串元素

-1 下標 功能 切片 name 字符 list python 筆記 name1 = ‘zcl,pyzyz‘names = [‘zcl‘,‘py‘,‘zyz‘]#切片的意思就是從list裏面或者字符串裏面取幾個元素#切片操作對字符串也是完全適用的# print(names[

含有M元素的集合任選n的排列組合

方法一: 問題:從含有M個元素的集合中任選n個的排列組合。 思路:利用M進位制的陣列來表示   源程式如下(在C-Free 3.5中測試)   /*-----------------------------------------------------------------------

java 實現無序陣列 找出第k大的數, 無序陣列充許有重複元素

要求找出第幾名的元素是什麼(找出B[i]的值)? 找出第k名的元素的值。          先從A中隨機一個下標index1, 然後進行一趟快速排序等到新陣列A1,排完了就知道index1對應的元素在A1中的新下標index2. 如果k等於index2,則A1[index2]就是要找的值。 如果 k小於in

求:m自然數n個數的所有組合

Q:編寫一個遞迴演算法,找出從自然數1,2,3,...,m中任取n個數的所有組合。例如:m=5,n=3時,所有組合為543,542,541,532,531,521,432,431,421,321。 A1:設這m個自然數存放在整數陣列A[k]中,A[i]存放i+1(0<

簡單列舉---一陣列n元素

在解決POJ753-Flip Games之前,我們先來看這樣一個問題:"給出一個數組a[6]={1,2,3,4,5,6},求從中任取n個元素的所有組合。" 如果任取1個元素,那麼組合是: 1  ,2  ,3  ,4  ,5 ,6. 如果任取2個元素,那麼組合是: 1 2,

java實現url路徑下載pdf文檔到本地

clas filename input 自己 lis pdf import tin -a package com.cellstrain.icell.util;import java.io.*;import java.net.*;public class DownloadPd

java實現命令行接收多數字,求和之後輸出結果

system 程序流程圖 sta num 思想 pri for循環 含義 自動 1.設計思想 首先要了解從命令行輸入數字的含義,不需要在程序中自己定義。需要定義int類的num和sum。之後利用num=Integer.parseInt(arg);將String型轉化為int

【c語言】字串str擷取一個子串,要求子串是str的第m字元開始 由n字元組成

#include<stdio.h> #include<string.h> /* 編寫程式:從字串str中擷取一個子串,要求子串是從str的第m個字元開始 由n個字元組成 程式理解: 需求中要求的是從一個字串中擷取固定的長度 m---->是開始的個數 n---->是

Java實現Html文字提取純文字

1、應用場景:從一份html檔案中或從String(是html內容)中提取純文字,去掉網頁標籤; 2、程式碼一:replaceAll搞定 //從html中提取純文字 public static String StripHT(String strHt

格雷碼、全排列、約瑟夫環、m元素n元素所有集合

格雷碼: 格雷碼是指,通過0-1的串來求出對應位數的所有可能。例如2的格雷碼:00、01、10、11 //格雷碼 例如2:00 01 10 11 void print(vector<int> &veNum) { for (int i = 1; i

java實現一個數據庫查詢資料經過處理匯入另外一個數據庫

            當資料庫表中有clob欄位或要對錶中資料做較複雜處理時就不太好用指令碼從一個數據庫匯入資料到另外一個數據庫中了,這時就要通過程式碼實現了,下面以orale資料庫為例程式碼如下: import java.sql.Connection; import j

PHP讀取(擷取substr)字串前N字元或者第幾字元開始字元

<?php $str = "123456789"; echo substr($str , 0 , 3);//從左邊第一位字元起擷取3位字元:結果:123 echo substr($str , 3

【演算法-分治】陣列取出n元素所有組合(需要深入理解遞迴)

本文為轉載,原文章出處http://www.cnblogs.com/shuaiwhu/archive/2012/04/27/2473788.html 如陣列為{1, 2, 3, 4, 5, 6},那麼從它中取出3個元素的組合有哪些,取出4個元素的組合呢? 比如取3個元素

m元素的集合n元素的子集

{        privateint m;        privateint[] set;        privateboolean first;        privateint position;             public NofM(int n, int m)     ...{    

(用指標方法處理)有n整數,使前面各數順序向後移m位置,最後m個數變成最前面m個數。編寫一個函式實現上述功能,在主函式輸入n整數,並輸出調整後的n個數

第一種方法:指標法 #include<stdio.h> #include<stdlib.h> int  w(int *d,int e,int g) {      int i,j,t;      int *r;      j=0;    for(i=

m取出n組合

import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class mAn { public static int count = 0

js數組取出n不重復的數據

arr rda ray array clas RR gpo cti gin /** * 首先,針對這個數組做一個去重處理,避免你在後面取數據的時候,因為取到相同的元素而又要多去取一次隨機數 * 將獲取到的不重復的數組,再到這裏樣本裏面去取隨機數 * 每取到

陣列n個數有多少種組合

private void mergeSort() { // int[] aa = {3, 5, 7, 9, 8, 4, 6, 1, 2}; // merge(aa, 0, aa.length-1); // for (int i=0;i<aa.