欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

深度遍歷java算法代碼,深度遍歷 java

如何用70行Java代碼實(shí)現(xiàn)深度神經(jīng)網(wǎng)絡(luò)算法

import java.util.Random;

網(wǎng)站的建設(shè)成都創(chuàng)新互聯(lián)公司專注網(wǎng)站定制,經(jīng)驗(yàn)豐富,不做模板,主營(yíng)網(wǎng)站定制開發(fā).小程序定制開發(fā),H5頁面制作!給你煥然一新的設(shè)計(jì)體驗(yàn)!已為宴會(huì)酒店設(shè)計(jì)等企業(yè)提供專業(yè)服務(wù)。

public class BpDeep{

public double[][] layer;//神經(jīng)網(wǎng)絡(luò)各層節(jié)點(diǎn)

public double[][] layerErr;//神經(jīng)網(wǎng)絡(luò)各節(jié)點(diǎn)誤差

public double[][][] layer_weight;//各層節(jié)點(diǎn)權(quán)重

public double[][][] layer_weight_delta;//各層節(jié)點(diǎn)權(quán)重動(dòng)量

public double mobp;//動(dòng)量系數(shù)

public double rate;//學(xué)習(xí)系數(shù)

public BpDeep(int[] layernum, double rate, double mobp){

this.mobp = mobp;

this.rate = rate;

layer = new double[layernum.length][];

layerErr = new double[layernum.length][];

layer_weight = new double[layernum.length][][];

layer_weight_delta = new double[layernum.length][][];

Random random = new Random();

for(int l=0;llayernum.length;l++){

layer[l]=new double[layernum[l]];

layerErr[l]=new double[layernum[l]];

if(l+1layernum.length){

layer_weight[l]=new double[layernum[l]+1][layernum[l+1]];

layer_weight_delta[l]=new double[layernum[l]+1][layernum[l+1]];

for(int j=0;jlayernum[l]+1;j++)

for(int i=0;ilayernum[l+1];i++)

layer_weight[l][j][i]=random.nextDouble();//隨機(jī)初始化權(quán)重

}

}

}

//逐層向前計(jì)算輸出

public double[] computeOut(double[] in){

for(int l=1;llayer.length;l++){

for(int j=0;jlayer[l].length;j++){

double z=layer_weight[l-1][layer[l-1].length][j];

for(int i=0;ilayer[l-1].length;i++){

layer[l-1][i]=l==1?in[i]:layer[l-1][i];

z+=layer_weight[l-1][i][j]*layer[l-1][i];

}

layer[l][j]=1/(1+Math.exp(-z));

}

}

return layer[layer.length-1];

}

//逐層反向計(jì)算誤差并修改權(quán)重

public void updateWeight(double[] tar){

int l=layer.length-1;

for(int j=0;jlayerErr[l].length;j++)

layerErr[l][j]=layer[l][j]*(1-layer[l][j])*(tar[j]-layer[l][j]);

while(l--0){

for(int j=0;jlayerErr[l].length;j++){

double z = 0.0;

for(int i=0;ilayerErr[l+1].length;i++){

z=z+l0?layerErr[l+1][i]*layer_weight[l][j][i]:0;

layer_weight_delta[l][j][i]= mobp*layer_weight_delta[l][j][i]+rate*layerErr[l+1][i]*layer[l][j];//隱含層動(dòng)量調(diào)整

layer_weight[l][j][i]+=layer_weight_delta[l][j][i];//隱含層權(quán)重調(diào)整

if(j==layerErr[l].length-1){

layer_weight_delta[l][j+1][i]= mobp*layer_weight_delta[l][j+1][i]+rate*layerErr[l+1][i];//截距動(dòng)量調(diào)整

layer_weight[l][j+1][i]+=layer_weight_delta[l][j+1][i];//截距權(quán)重調(diào)整

}

}

layerErr[l][j]=z*layer[l][j]*(1-layer[l][j]);//記錄誤差

}

}

}

public void train(double[] in, double[] tar){

double[] out = computeOut(in);

updateWeight(tar);

}

}

參考資料

用java言語編寫一個(gè)遍歷硬盤里面后綴名為.java的文件名。

import java.io.File;

import java.io.FileFilter;

import java.util.ArrayList;

import java.util.List;

public class Test {

public static void main(String[] args) {

//用來保存java文件的名字的list

ListString javaFilelist = new ArrayListString();

String filePath = "C://111"; //要測(cè)試的文件,如果是分區(qū),必須是C://這樣子的

getAllFiles(new File(filePath), javaFilelist);

if(javaFilelist.size() == 0){

System.out.println("No java file found under " + filePath);

}

System.out.println("Java file list in " + filePath);

for(String javaFileName: javaFilelist){

System.out.println(javaFileName);

}

}

public static void getAllFiles(File path, ListString list){

if(path.isFile()){//如果是文件

if(path.getName().matches("^.+\\.java$")){//用正則表達(dá)式并且是java文件加入list

list.add(path.getAbsolutePath());

}

}else{//這里加入一個(gè)過濾,過濾掉非java文件,只保留java文件和文件夾

File[] fileAry = path.listFiles(new JavaFileFilter());

if(fileAry == null || fileAry.length == 0){

return;

}

for(File file: fileAry){

getAllFiles(file, list);

}

}

}

}

class JavaFileFilter implements FileFilter{

public boolean accept(File pathname) {

if(pathname.isDirectory()){//如果是目錄也接受

return true;

}else{//如果是java文件,才接受

return pathname.getName().matches("^.+\\.java$");

}

}

}

-------------

測(cè)試文件夾下所有文件及其文件夾,輸出應(yīng)該只有4個(gè)文件,11.java, 444.java, test.java, 222.java

C:\111tree /F

Folder PATH listi

Volume serial num

C:.

│ 11.java

│ abdef.txt

├—2

│ 444.java

│ test.java

└—3

│ 222.java

└—2.java

--------程序輸出

Java file list in C://111

C:\111\11.java

C:\111\2\444.java

C:\111\2\test.java

C:\111\3\222.java

關(guān)于用java遍歷集合的算法

public static void main(String[] args) {

ListA list=new ArrayListA();

list.add(new A(1,1,0));

list.add(new A(2,2,1));

list.add(new A(3,3,1));

list.add(new A(4,4,2));

list.add(new A(5,5,2));

list.add(new A(6,6,3));

list.add(new A(7,7,3));

list.add(new A(8,8,4));

list.add(new A(9,9,5));

diayong(list,2);

}

private static void diayong(ListAlist,int i) {

// TODO Auto-generated method stub

for (A a : list) {

if(a.did==i){

System.out.println(a.id);

diayong(list,a.id);

}

}

}

輸出結(jié)果 4 8 5 9 先找到等于2的第一次 4 然后找等于4的 8 然后沒有了 再循環(huán)找到等于 2的 5 然后找到9 以此類推 不知道 是不是你要的

java 深度優(yōu)先搜索(回溯法)求集合的冪集

import java.util.ArrayList;

import java.util.List;

public class BackTrack {

public static void main(String[] args) {

//初始化一個(gè)集合,放在list里面

ListString list=new ArrayListString();

list.add("1");

list.add("2");

list.add("3");

list.add("f");

ListString li=new ArrayListString();

PowerSet(0,list,li);

}

//回溯法求冪集

public static void PowerSet(int i,ListString list,ListString li){

if(ilist.size()-1){System.out.println(li);}

else{

li.add(list.get(i));//左加

PowerSet(i+1,list,li); //遞歸方法

li.remove(list.get(i)); //右去

PowerSet(i+1, list, li);

}

}

}

注:該方法采用中序遍歷二叉樹(實(shí)際這棵樹是不存在的)。對(duì)于第一個(gè)元素,左節(jié)點(diǎn)加進(jìn)去,右節(jié)點(diǎn)去掉。對(duì)于第i一個(gè)節(jié)點(diǎn),左加,右去。直到i大于元素的總個(gè)數(shù)。

輸出結(jié)果:

[1, 2, 3, 4]

[1, 2, 3]

[1, 2, 4]

[1, 2]

[1, 3, 4]

[1, 3]

[1, 4]

[1]

[2, 3, 4]

[2, 3]

[2, 4]

[2]

[3, 4]

[3]

[4]

[]

圖的遍歷算法java解決方案

二叉樹具有以下重要性質(zhì):

性質(zhì)1 二叉樹第i層上的結(jié)點(diǎn)數(shù)目最多為2i-1(i≥1)。

證明:用數(shù)學(xué)歸納法證明:

歸納基礎(chǔ):i=1時(shí),有2i-1=20=1。因?yàn)榈?層上只有一個(gè)根結(jié)點(diǎn),所以命題成立。

歸納假設(shè):假設(shè)對(duì)所有的j(1≤ji)命題成立,即第j層上至多有2j-1個(gè)結(jié)點(diǎn),證明j=i時(shí)命題亦成立。

歸納步驟:根據(jù)歸納假設(shè),第i-1層上至多有2i-2個(gè)結(jié)點(diǎn)。由于二叉樹的每個(gè)結(jié)點(diǎn)至多有兩個(gè)孩子,故第i層上的結(jié)點(diǎn)數(shù)至多是第i-1層上的最大結(jié)點(diǎn)數(shù)的2倍。即j=i時(shí),該層上至多有2×2i-2=2i-1個(gè)結(jié)點(diǎn),故命題成立。

性質(zhì)2 深度為k的二叉樹至多有2k-1個(gè)結(jié)點(diǎn)(k≥1)。

證明:在具有相同深度的二叉樹中,僅當(dāng)每一層都含有最大結(jié)點(diǎn)數(shù)時(shí),其樹中結(jié)點(diǎn)數(shù)最多。因此利用性質(zhì)1可得,深度為k的二叉樹的結(jié)點(diǎn)數(shù)至多為:

20+21+…+2k-1=2k-1

故命題正確。

性質(zhì)3 在任意-棵二叉樹中,若終端結(jié)點(diǎn)的個(gè)數(shù)為n0,度為2的結(jié)點(diǎn)數(shù)為n2,則no=n2+1。

證明:因?yàn)槎鏄渲兴薪Y(jié)點(diǎn)的度數(shù)均不大于2,所以結(jié)點(diǎn)總數(shù)(記為n)應(yīng)等于0度結(jié)點(diǎn)數(shù)、1度結(jié)點(diǎn)(記為n1)和2度結(jié)點(diǎn)數(shù)之和:

n=no+n1+n2 (式子1)

另一方面,1度結(jié)點(diǎn)有一個(gè)孩子,2度結(jié)點(diǎn)有兩個(gè)孩子,故二叉樹中孩子結(jié)點(diǎn)總數(shù)是:

nl+2n2

樹中只有根結(jié)點(diǎn)不是任何結(jié)點(diǎn)的孩子,故二叉樹中的結(jié)點(diǎn)總數(shù)又可表示為:

n=n1+2n2+1 (式子2)

由式子1和式子2得到:

no=n2+1

滿二叉樹和完全二叉樹是二叉樹的兩種特殊情形。

1、滿二叉樹(FullBinaryTree)

一棵深度為k且有2k-1個(gè)結(jié)點(diǎn)的二又樹稱為滿二叉樹。

滿二叉樹的特點(diǎn):

(1) 每一層上的結(jié)點(diǎn)數(shù)都達(dá)到最大值。即對(duì)給定的高度,它是具有最多結(jié)點(diǎn)數(shù)的二叉樹。

(2) 滿二叉樹中不存在度數(shù)為1的結(jié)點(diǎn),每個(gè)分支結(jié)點(diǎn)均有兩棵高度相同的子樹,且樹葉都在最下一層上。

【例】圖(a)是一個(gè)深度為4的滿二叉樹。

2、完全二叉樹(Complete BinaryTree)

若一棵二叉樹至多只有最下面的兩層上結(jié)點(diǎn)的度數(shù)可以小于2,并且最下一層上的結(jié)點(diǎn)都集中在該層最左邊的若干位置上,則此二叉樹稱為完全二叉樹。

特點(diǎn):

(1) 滿二叉樹是完全二叉樹,完全二叉樹不一定是滿二叉樹。

(2) 在滿二叉樹的最下一層上,從最右邊開始連續(xù)刪去若干結(jié)點(diǎn)后得到的二叉樹仍然是一棵完全二叉樹。

(3) 在完全二叉樹中,若某個(gè)結(jié)點(diǎn)沒有左孩子,則它一定沒有右孩子,即該結(jié)點(diǎn)必是葉結(jié)點(diǎn)。

【例】如圖(c)中,結(jié)點(diǎn)F沒有左孩子而有右孩子L,故它不是一棵完全二叉樹。

【例】圖(b)是一棵完全二叉樹。

性質(zhì)4 具有n個(gè)結(jié)點(diǎn)的完全二叉樹的深度為

證明:設(shè)所求完全二叉樹的深度為k。由完全二叉樹定義可得:

深度為k得完全二叉樹的前k-1層是深度為k-1的滿二叉樹,一共有2k-1-1個(gè)結(jié)點(diǎn)。

由于完全二叉樹深度為k,故第k層上還有若干個(gè)結(jié)點(diǎn),因此該完全二叉樹的結(jié)點(diǎn)個(gè)數(shù):

n2k-1-1。

另一方面,由性質(zhì)2可得:

n≤2k-1,

即:2k-1-ln≤2k-1

由此可推出:2k-1≤n2k,取對(duì)數(shù)后有:

k-1≤lgnk

又因k-1和k是相鄰的兩個(gè)整數(shù),故有

,

由此即得:

分享題目:深度遍歷java算法代碼,深度遍歷 java
文章分享:http://chinadenli.net/article29/dsejgjh.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)服務(wù)器托管網(wǎng)站制作動(dòng)態(tài)網(wǎng)站手機(jī)網(wǎng)站建設(shè)全網(wǎng)營(yíng)銷推廣

廣告

聲明:本網(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)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司