要計(jì)算這個(gè)組合數(shù)之和,可以使用Java中的組合數(shù)公式,即C(n, m) = n! / (m! * (n-m)!)。首先我們可以使用循環(huán)和遞歸的方式來計(jì)算組合數(shù):
成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)的關(guān)注點(diǎn)不是能為您做些什么網(wǎng)站,而是怎么做網(wǎng)站,有沒有做好網(wǎng)站,給創(chuàng)新互聯(lián)一個(gè)展示的機(jī)會(huì)來證明自己,這并不會(huì)花費(fèi)您太多時(shí)間,或許會(huì)給您帶來新的靈感和驚喜。面向用戶友好,注重用戶體驗(yàn),一切以用戶為中心。
public class Main {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i = 4; i++) {
sum += combination(7, i);
}
sum += combination(7, 7);
System.out.println(sum);
}
public static int combination(int n, int m) {
if (m == 0 || m == n) {
return 1;
}
return combination(n-1, m-1) + combination(n-1, m);
}
}
在這個(gè)代碼中,我們使用了循環(huán)遍歷C7^1到C7^4這四個(gè)組合數(shù),并且計(jì)算它們的和。然后,我們?cè)儆?jì)算C7^7,并把它的結(jié)果加入到總和中。
在計(jì)算組合數(shù)時(shí),我們使用了遞歸的方式實(shí)現(xiàn)組合數(shù)公式。具體來說,當(dāng)m為0或n時(shí),組合數(shù)為1。否則,我們使用遞歸調(diào)用來計(jì)算C(n-1, m-1)和C(n-1, m),然后將它們相加得到結(jié)果。
上述代碼的輸出結(jié)果為:924。
代碼如下:
import java.util.ArrayList;
import java.util.List;
class Org {
private String id;
private String name;
private String pid;
public Org(String id, String name, String pid) {
this.id = id;
this.name = name;
this.pid = pid;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPid() {
return pid;
}
public void setPid(String pid) {
this.pid = pid;
}
@Override
public String toString() {
return "Org [id=" + id + ", name=" + name + ", pid=" + pid + "]";
}
}
public class App {
static void find(ListOrg list, String pid) {
list.stream().filter(p - p.getPid().equals(pid))
.forEach(org - {
System.out.println(org);
find(list, org.getId());
});
}
public static void main(String[] args) {
ListOrg list = new ArrayList();
list.add(new Org("111", "公司", "0"));
list.add(new Org("222", "部門", "111"));
list.add(new Org("333", "小組", "222"));
list.add(new Org("444", "員工1", "333"));
list.add(new Org("555", "員工2", "333"));
find(list, "0");
System.out.println("------------------------------------");
find(list, "111");
}
}
運(yùn)行結(jié)果:
這樣的用簡(jiǎn)單的判斷就行了 :先判斷PID為空的,這個(gè)是父節(jié)點(diǎn),然后取出PID為空的Id當(dāng)做取其子節(jié)點(diǎn)的父節(jié)點(diǎn),一次判斷就行了,結(jié)合列子:取PID為空的ID即1,2,然后把取PId等于1和2的ID即345和6然后分別掛在1和2下,345就是1的子節(jié)點(diǎn),6是2的子節(jié)點(diǎn),有多節(jié)點(diǎn)的一次類推(這只是其中一個(gè)簡(jiǎn)單的方法)
代碼:
package com.ufotable.test;
public class Test30 {
private static int l,r,u,d;//定義上下左右邊界
private static int[][] a=new int[0][0];//數(shù)組
private static int y=0,x=0;//初始化坐標(biāo)
private static int step,temp;//步長(zhǎng),上一個(gè)數(shù)組的值
private static void add(int y,int x){
temp+=step;a[y][x]=temp;
}
private static void left(){
while(xl)add(y, --x);//未遇到左邊界
if(yu){//遇到左邊界且未遇到上邊界
l++;up();
}
}
private static void right(){
while(xr)add(y, ++x);//未遇到右邊界
if(yd){//遇到右邊界且未遇到下邊界
r--;
down();
}
}
private static void up(){
while(yu)add(--y, x);//未遇到上邊界
if(xr){//遇到上邊界且未遇到右邊界
u++;
right();
}
}
private static void down(){
while(yd)add(++y, x);//未遇到下邊界
if(xl){//遇到下邊界且未遇到左邊界
d--;
left();
}
}
private static void fun(int start,int step,int length){//產(chǎn)生數(shù)組(起始值,步長(zhǎng),矩陣邊長(zhǎng))
Test30.step=step;
l=u=0;r=d=length-1;
a=new int[length][length];
a[0][0]=temp=start;
up();
}
public static void print(){//輸出矩陣
for(int i=0;ia.length;i++){
for(int j=0;ja.length;j++){
System.out.print(a[i][j]+"\t");
}System.out.println();}
}
public static void main(String[] args) {
fun(0,1,10);//測(cè)試
print();
}
}
輸出結(jié)果:
當(dāng)前名稱:kd樹java代碼實(shí)現(xiàn) kd樹 python代碼
本文鏈接:http://www.chinadenli.net/article30/dddchso.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、網(wǎng)站建設(shè)、用戶體驗(yàn)、域名注冊(cè)、App開發(fā)、網(wǎng)站導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)