亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? tj.java

?? 用寫(xiě)的計(jì)算角動(dòng)量的程序。里面含有作者的文章出處。對(duì)科技人員非常有用
?? JAVA
字號(hào):
import java.applet.*;import java.awt.*;import java.awt.event.*;import java.math.*;/* Three-J symbol calculator */public class TJ extends Applet implements ActionListener, Runnable {        Thread playing;        // declare our A.M values out here        BigRational j1,j2,j,m1,m2,m;    // Let's allow the user to input the numbers as reals.     // a double will be just fine here.    double hj1,hj2,hj,hm1,hm2,hm;        // the approximate answer as a 'double'    double approxanswer;        // panels for the rows of GUI things:        // row one has some text: (unused)    Panel row1 = new Panel();    Label instructions = new Label	("Enter the values of a.m. in the boxes below..",Label.CENTER);    // row two has the j quantum numbers    Panel row2 = new Panel();    Label j1label = new Label("j1=",Label.RIGHT);    TextField j1field = new TextField(4);    Label j2label = new Label("j2=",Label.RIGHT);    TextField j2field = new TextField(4);    Label jlabel = new Label(" j=",Label.RIGHT);    TextField jfield = new TextField(4);    // row three has the m quantum numbers    Panel row3 = new Panel();    Label m1label = new Label("m1=",Label.RIGHT);    TextField m1field = new TextField(4);    Label m2label = new Label("m2=",Label.RIGHT);    TextField m2field = new TextField(4);    Label mlabel = new Label("m=",Label.RIGHT);    TextField mfield = new TextField(4);    // row four has the buttons    Panel row4 = new Panel();    Button go = new Button("Go!");    Button clear = new Button("Clear");    // row five has the answer    Panel row5 = new Panel();    TextField outfield = new TextField(70);    // row six has the approximate answer    Panel row6 = new Panel();    Label approxlabel = new Label("approx:",Label.RIGHT);    TextField approxfield = new TextField(40);            public void init() {		Font myfont = new Font("SansSerif", Font.PLAIN, 12);	setFont(myfont);		// set up the layout of the GUI		GridLayout mylayout = new GridLayout(5,1,1,1);	setLayout(mylayout);		FlowLayout layout1 = new FlowLayout(FlowLayout.CENTER, 1,1);	row1.setLayout(layout1);	row1.add(instructions);	//add(row2);		// do "j" row	FlowLayout layout2 = new FlowLayout(FlowLayout.CENTER, 1, 1);	row2.setLayout(layout2);	row2.add(j1label);	row2.add(j1field);	row2.add(j2label);	row2.add(j2field);	row2.add(jlabel);	row2.add(jfield);	add(row2);		FlowLayout layout3 = new FlowLayout(FlowLayout.CENTER, 1, 1);	row3.setLayout(layout3);	row3.add(m1label);	row3.add(m1field);	row3.add(m2label);	row3.add(m2field);	row3.add(mlabel);	row3.add(mfield);	add(row3);	FlowLayout layout4 = new FlowLayout(FlowLayout.CENTER, 1, 1);	row4.setLayout(layout4);	row4.add(go);	row4.add(clear);	add(row4);	FlowLayout layout5 = new FlowLayout(FlowLayout.CENTER, 1, 1);	row5.setLayout(layout5);	outfield.setEditable(false);	row5.add(outfield);	add(row5);		FlowLayout layout6 = new FlowLayout(FlowLayout.CENTER, 1, 1);	row6.setLayout(layout6);	approxfield.setEditable(false);	row6.add(approxlabel);	row6.add(approxfield);	add(row6);	// done setting up the layout. Now add some listeners (to the buttons)	go.addActionListener(this);	clear.addActionListener(this);    }            public void actionPerformed(ActionEvent event) {	String command = event.getActionCommand();	if(command == "Go!") { 	    playing = new Thread(this);	    playing.start();	    go.setEnabled(false);	    clear.setEnabled(false);	    outfield.setText("");	}	if(command == "Clear") 	    clearAllFields();    }        void clearAllFields(){	j1field.setText(null);	m1field.setText(null);	j2field.setText(null);	m2field.setText(null);	jfield.setText(null);	mfield.setText(null);	outfield.setText(null);	approxfield.setText(null);    }        public void run() {	// This is where the thread starts.. we need to pass the values from	// our boxes to the Clebsch class..		final BigRational ONE_R = new BigRational(1);			// We get the input from the input boxes and convert to the 	// BigInteger type.	// This can throw an exception if bad input is given, so let's catch	// it if we can..		try {	    hj1 = (new java.lang.Double(j1field.getText())).doubleValue();	    hm1 = (new java.lang.Double(m1field.getText())).doubleValue();	    hj2 = (new java.lang.Double(j2field.getText())).doubleValue();	    hm2 = (new java.lang.Double(m2field.getText())).doubleValue();	    hj = (new java.lang.Double(jfield.getText())).doubleValue();	    hm = (new java.lang.Double(mfield.getText())).doubleValue();	}	catch (java.lang.NumberFormatException e) {	    outfield.setText("All input must be numerical");	    go.setEnabled(true);	    clear.setEnabled(true);	    return;	}	// convert decimal input to BigRational.	j1 = new BigRational(new BigInteger(Long.toString(Math.round(2.*hj1))),			     new BigInteger("2"));	m1 = new BigRational(new BigInteger(Long.toString(Math.round(2.*hm1))),			     new BigInteger("2"));	j2 = new BigRational(new BigInteger(Long.toString(Math.round(2.*hj2))),			     new BigInteger("2"));	m2 = new BigRational(new BigInteger(Long.toString(Math.round(2.*hm2))),			     new BigInteger("2"));	j = new BigRational(new BigInteger(Long.toString(Math.round(2.*hj))),			     new BigInteger("2"));	m = new BigRational(new BigInteger(Long.toString(Math.round(2.*hm))),			     new BigInteger("2"));	// we are re-using the cleb code, so for a 3-j symbol, we change 	// the sign of m1 and m2;	//m = m.multiply(new BigInteger("-1"));	m1 = m1.multiply(new BigInteger("-1"));	m2 = m2.multiply(new BigInteger("-1"));	// There is a delta function on the m-values - so we catch this one	// early on:		if ( ! ((m1.add(m2)).equals(m)) ) {	    outfield.setText("0 (m1+m2+m not zero)");	    approxfield.setText("0.0");	    go.setEnabled(true);	    clear.setEnabled(true);	    return;	}	// Another problem with the input would be if any of the m's have a	// bigger magnitude than their j.		if ( Math.abs(hm1) > hj1) {	    outfield.setText("0 (|m1| greater than j1)");	    approxfield.setText("0.0");	    go.setEnabled(true);	    clear.setEnabled(true);      	    return;	}	if ( Math.abs(hm2) > hj2 ) {	    outfield.setText("0 (|m2| greater than j2)");	    approxfield.setText("0.0");	    go.setEnabled(true);	    clear.setEnabled(true);      	    return;	}	if ( Math.abs(hm) > hj ) {	    outfield.setText("0 (|m| greater than j)");	    approxfield.setText("0.0");	    go.setEnabled(true);	    clear.setEnabled(true);      	    return;	}		// also, each of the values 2m must have the same parity as their	// corresponding 2j, for physical reasons.		if (Math.abs(Math.abs(hm1-hj1)-Math.round(Math.abs(hm1-hj1)))>0.0001 ){	    outfield.setText("0 (m1="+m1field.getText()+			     " is not consistent with j1="+			     j1field.getText()+")");	    approxfield.setText("0.0");	    go.setEnabled(true);	    clear.setEnabled(true);      	    return;	}	if (Math.abs(Math.abs(hm2-hj2)-Math.round(Math.abs(hm2-hj2)))>0.0001){	    outfield.setText("0 (m2="+m2field.getText()+			     " is not consistent with j2="+			     j2field.getText()+")");	    approxfield.setText("0.0");	    go.setEnabled(true);	    clear.setEnabled(true);      	    return;	}	if (Math.abs(Math.abs(hm-hj)-Math.round(Math.abs(hm-hj)))>0.0001 ) {	    outfield.setText("0 (m="+mfield.getText()+			     " is not consistent with j="+			     jfield.getText()+")");	    go.setEnabled(true);	    clear.setEnabled(true);      	    return;	}		// and finally... the j's must satisfy the triangle relations..		if(Math.abs(hj1-hj2) > hj || Math.abs(hj1+hj2) < hj) {	    outfield.setText("0 (j1, j2 and j do not satisfy the triangle"+			     " relation)");	    approxfield.setText("0.0");	    go.setEnabled(true);	    clear.setEnabled(true);      	    return;	}		//	//  We get this far if we pass all the tests for suitability of	// input parameters. Now nothing can go wrong :-)	//			// now we must calculate the fraction delta(j1,j2,j)^2	BigRational delta = new 	    BigRational(factorial( (j1.add(j2)).subtract(j).toBigInteger() ),			factorial( (((j1.add(j2)).add(j)).add(ONE_R)				    ).toBigInteger() ) );	delta=delta.multiply(factorial(j1.add(j).subtract(j2).toBigInteger()));	delta=delta.multiply(factorial(j2.add(j).subtract(j1).toBigInteger()));		// There are also a bunch of factors sitting outside the 	// sum which must be calculated.	BigInteger outfactors = 	    factorial(j1.add(m1).toBigInteger())	    .multiply( factorial(j1.subtract(m1).toBigInteger()) )	    .multiply( factorial(j2.add(m2).toBigInteger()))	    .multiply( factorial(j2.subtract(m2).toBigInteger()) )	    .multiply( factorial(j.add(m).toBigInteger()) )	    .multiply( factorial(j.subtract(m).toBigInteger()))	    .multiply( (j.add(j)).add(ONE_R) .toBigInteger() );	// Now we can set up the sum.	BigInteger t1 = j1.subtract(m1).toBigInteger();	BigInteger t2 = j.add(m1).subtract(j2).toBigInteger();	BigInteger t3 = j2.add(m2).toBigInteger();	BigInteger t4 = (j.subtract(j1)).subtract(m2).toBigInteger();	BigInteger t5 = j1.add(j2).subtract(j).toBigInteger();	BigInteger nulo = new BigInteger("0");	if(nulo.compareTo(t2.negate()) < 0) nulo = t2.negate();	if(nulo.compareTo(t4.negate()) < 0) nulo = t4.negate();	BigInteger nuhi = t1;	if(nuhi.compareTo(t3) > 0) nuhi = t3;	if(nuhi.compareTo(t5) > 0) nuhi = t5;	// now we are ready to perform the loop for the sum		BigRational sumvar = new BigRational(0);	float pcdone = 0.0f;	int range = (nuhi.subtract(nulo)).intValue();	float pcpernu = 100.0f/(float) range;			for (BigInteger nu = nulo; nu.compareTo(nuhi)<=0;	     nu=nu.add(new BigInteger("1"))) {	    	    if(range >=10) {		outfield.setText("Thinking.."+				 java.lang.Integer.toString((int)pcdone)+				 "% done.");		pcdone += pcpernu;	    }	    	    if(nu.mod(new BigInteger("2")).compareTo(new BigInteger("0")						     ) == 0) {		sumvar=sumvar.		    add(new BigRational(new 					BigInteger("1"),					factorial(t1.subtract(nu)						  ).multiply(factorial(t2.								       add(nu))							     ).					multiply(factorial(t3.subtract(nu))						 ).					multiply(factorial(t4.add(nu))						 ).					multiply(factorial(t5.subtract(nu))						 ).multiply(factorial(nu))));	    }	    else		sumvar=sumvar.		    subtract( new BigRational(new BigInteger("1"),					      factorial(t1.subtract(nu)							).					      multiply(factorial(t2.add(nu))						       ).					      multiply(factorial(t3.								 subtract(nu))						       ).					      multiply(factorial(t4.add(nu))						       ).					      multiply(factorial(t5.								 subtract(nu))						       ).					      multiply(factorial(nu))));	}			// Now we have everything and we just need to do a little 	// manipulation for output.	boolean isneg=false;		// multiply cleb result by appropriate phase for 3j;	if( (((j.add(m)).divide(new BigInteger("2")).add(j1))	     .denominator).equals(new BigInteger("2"))) {	    sumvar = sumvar.multiply(new BigInteger("-1"));	}	if(sumvar.numerator.compareTo(new BigInteger("0"))<0) isneg=true;	// include extra multiplicative factor for 3j as opposed to cleb	// Let's stick it on delta since it's already a rational object	// which is implicitly square-rooted	delta = delta.divide((j.add(j)).add(ONE_R));	BigRational inside = delta.multiply(outfactors);	outfield.setText("Simplifying Expression");	BigInteger denomfactors = squarefactor(inside.denominator);	BigInteger numerfactors = squarefactor(inside.numerator);	inside = (inside.divide(numerfactors.multiply(numerfactors))).	    multiply(denomfactors.multiply(denomfactors));	BigRational outside = sumvar;	outside = (outside.multiply(numerfactors)).divide(denomfactors);		// get an approximate (decimal) expression for an answer:	BigDecimal bigapprox = (new BigDecimal(inside.numerator)).	    setScale(100);	bigapprox = bigapprox.divide((new BigDecimal(inside.denominator)).				     setScale(100),BigDecimal.ROUND_HALF_DOWN);	approxanswer = java.lang.Math.sqrt(bigapprox.doubleValue());		   	bigapprox = (new BigDecimal(outside.numerator)).setScale(100);	bigapprox = bigapprox.divide((new BigDecimal(outside.denominator)).				     setScale(100),BigDecimal.ROUND_HALF_DOWN);	approxanswer = approxanswer * bigapprox.doubleValue();	approxfield.setText("");	approxfield.setText(approxfield.getText()+			    java.lang.Double.toString(approxanswer));	// print out the analytic answer	outfield.setText("");		if(isneg==true) outfield.setText("-");	if(inside.numerator.compareTo(new BigInteger("0"))==0) {	    outfield.setText("0");} 	else if(outside.numerator.compareTo(new BigInteger("0"))==0) {	    outfield.setText("0");} 	else { 	    if(outside.equals(ONE_R) == false) {		if(inside.equals(ONE_R) == true) {		    outfield.setText(outfield.getText()+				     outside.abs().toString());}		else {		    outfield.setText(outfield.getText()+"("+				     outside.abs().toString()+")*"); }}	    if (inside.equals(ONE_R)==false) {		outfield.setText(outfield.getText()+"sqrt("+				 inside.toString()+")");}  	    else if(outside.equals(ONE_R) == true &&		    inside.equals(ONE_R) == true)  		{outfield.setText(outfield.getText()+"1");}}	go.setEnabled(true);	clear.setEnabled(true);    }        //    // Here follows the factorial method (function) for BigIntegers.     // It is a class method, so must be static.    //    public static BigInteger factorial(BigInteger a) {	if (a.compareTo(new BigInteger("0"))<0) 	    return new BigInteger("0"); 	if (a.compareTo(new BigInteger("0"))==0 ||	    a.compareTo(new BigInteger("1"))==0) {	    return new BigInteger("1");	}	else {	    return a.multiply(factorial(a.subtract(new BigInteger("1"))));	}    }    // end of factorial method    //     // A method to simplify sqrt(I) where I is a BigInteger, by checking    // I for factors which are perfect squares.    //        public static BigInteger squarefactor(BigInteger a) {	BigInteger i = new BigInteger("2");	BigInteger result = new BigInteger("1");	while(i.multiply(i).compareTo(a.min(new BigInteger("10000000")))<=0) {	    if ( a.mod(i.multiply(i)).compareTo(new BigInteger("0"))==0) {		return (i.multiply(squarefactor(a.divide(i.multiply(i))))); }	    i = i.add(new BigInteger("1"));	}	return result;    }}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91影院在线免费观看| 日韩你懂的在线播放| 在线播放中文字幕一区| 2023国产精品| 亚洲高清久久久| 成人高清伦理免费影院在线观看| 制服视频三区第一页精品| 中文字幕一区二区不卡| 精品一二线国产| 欧美精品少妇一区二区三区| 国产精品久久久一区麻豆最新章节| 日韩高清一级片| 欧美私模裸体表演在线观看| 日本一区二区三区dvd视频在线| 日韩avvvv在线播放| 欧美午夜电影网| 亚洲女人小视频在线观看| 从欧美一区二区三区| 精品免费日韩av| 美女网站色91| 91精品婷婷国产综合久久性色 | 国产乱理伦片在线观看夜一区| 欧美在线看片a免费观看| 国产精品欧美极品| 国产乱子轮精品视频| 日韩一级高清毛片| 日韩在线a电影| 91麻豆精品91久久久久久清纯| 亚洲国产精品久久一线不卡| 色国产精品一区在线观看| 1区2区3区精品视频| 成人的网站免费观看| 亚洲欧洲国产专区| 91啦中文在线观看| 国产精品久久久久国产精品日日| 成人一区二区三区中文字幕| 久久精品欧美一区二区三区不卡| 国产精品自产自拍| 欧美激情在线免费观看| 岛国一区二区三区| 自拍偷拍亚洲激情| 91久久精品一区二区三| 一区二区三区四区国产精品| 欧洲激情一区二区| 午夜精品在线看| 日韩一区二区三区三四区视频在线观看 | 免费欧美日韩国产三级电影| 日韩免费视频线观看| 韩日欧美一区二区三区| 精品美女在线播放| 国产v日产∨综合v精品视频| 国产精品久久久久婷婷二区次| 色婷婷久久一区二区三区麻豆| 亚洲成a人v欧美综合天堂下载| 欧美精品在线观看一区二区| 久久99精品久久久久久国产越南| 国产日产亚洲精品系列| 91蜜桃传媒精品久久久一区二区| 亚洲一区二区三区自拍| 日韩美女一区二区三区| 成人av综合在线| 天堂蜜桃一区二区三区| 久久久不卡影院| 欧美丝袜自拍制服另类| 国产一区二区三区四区五区美女| 中文字幕在线一区免费| 91精品国产一区二区三区| 国产高清精品网站| 一区二区国产视频| 精品国产91洋老外米糕| 91丨porny丨首页| 蜜臀av一区二区三区| 国产精品女人毛片| 91精品国产91综合久久蜜臀| 国产99久久久国产精品免费看 | 国产精品不卡视频| 777亚洲妇女| av中文字幕在线不卡| 日韩中文字幕麻豆| 中文字幕视频一区二区三区久| 欧美精品久久久久久久久老牛影院| 国产精品影音先锋| 日日夜夜一区二区| 国产精品久久久久国产精品日日 | 国产婷婷色一区二区三区 | 精品国产乱码久久久久久浪潮 | 亚洲品质自拍视频网站| 久久久不卡网国产精品二区| 精品视频一区三区九区| 粗大黑人巨茎大战欧美成人| 日韩av电影免费观看高清完整版在线观看 | 亚洲一区二区三区四区五区黄| 久久亚洲捆绑美女| 日韩一级黄色大片| 欧美日韩精品欧美日韩精品一| 成人av综合一区| 丁香婷婷综合五月| 国产一区二区久久| 喷白浆一区二区| 亚洲综合免费观看高清完整版在线 | 舔着乳尖日韩一区| 一区二区三区精品在线| 成人欧美一区二区三区小说| 国产欧美日韩麻豆91| 精品av久久707| 日韩一区二区三区高清免费看看| 欧美性生活影院| 色综合天天综合狠狠| 粉嫩aⅴ一区二区三区四区五区| 免播放器亚洲一区| 久久99精品久久久| 蜜臀久久久99精品久久久久久| 天天色综合成人网| 午夜精品久久久久久不卡8050| 亚洲国产一区二区在线播放| 亚洲欧洲精品天堂一级| 亚洲欧美在线观看| 亚洲欧美aⅴ...| 亚洲综合成人在线视频| 一区二区三区欧美| 亚洲成av人片在线| 香蕉久久夜色精品国产使用方法| 天堂久久一区二区三区| 日韩精品乱码av一区二区| 日韩va亚洲va欧美va久久| 日韩国产精品久久| 国产一区在线观看视频| 国产成人免费视频网站高清观看视频 | 欧美色电影在线| 欧美精品黑人性xxxx| 91精品国产综合久久久久久久久久 | 97久久超碰国产精品| 成人精品一区二区三区四区| 99天天综合性| 欧美性欧美巨大黑白大战| 91精品久久久久久久久99蜜臂| 精品国产91久久久久久久妲己| 久久久99精品免费观看| 中文字幕av不卡| 亚洲国产日韩一级| 精品亚洲aⅴ乱码一区二区三区| 国产精品888| 欧美性视频一区二区三区| 日韩一区二区三区免费看| 国产欧美一区二区精品性色超碰| 亚洲欧洲日本在线| 日韩精品一级中文字幕精品视频免费观看| 日本不卡视频在线观看| 国产成人av一区二区三区在线| 91碰在线视频| 精品嫩草影院久久| 亚洲综合av网| 国模大尺度一区二区三区| jizz一区二区| 日韩欧美国产一区二区在线播放| 亚洲国产激情av| 日韩精品每日更新| 99久久国产免费看| 日韩午夜在线播放| 亚洲色图都市小说| 裸体一区二区三区| 91蝌蚪porny九色| 精品国产乱码久久久久久1区2区 | 美女久久久精品| 色成年激情久久综合| 欧美xfplay| 亚洲国产成人av好男人在线观看| 国产69精品久久久久777| 在线观看一区不卡| 国产精品丝袜91| 久久99精品国产91久久来源| 色吊一区二区三区| 国产精品网曝门| 国内精品在线播放| 91精品国产aⅴ一区二区| 亚洲人成小说网站色在线 | 国产精品久久久久久久久图文区| 裸体一区二区三区| 777精品伊人久久久久大香线蕉| 中文字幕一区二区三区在线不卡| 国内精品伊人久久久久影院对白| 欧美日韩国产影片| 亚洲精品久久久久久国产精华液| 国产**成人网毛片九色| 久久在线免费观看| 免费高清成人在线| 337p亚洲精品色噜噜| 亚洲大尺度视频在线观看| 欧美在线观看视频一区二区| 久久久亚洲午夜电影| 久久99在线观看| 91精品国产91热久久久做人人| 亚洲欧美另类综合偷拍| 成人福利视频网站| 一区精品在线播放| 91在线视频网址| 亚洲乱码国产乱码精品精98午夜| hitomi一区二区三区精品| 亚洲视频在线一区| 91视频免费观看|