約 1,780,436 件
https://w.atwiki.jp/study_java/pages/19.html
分類名 整数名 サイズ 値の範囲 初期値 符号付整数 byte 1byte -128~+127 0 符号付整数 short 2bytes -32768~+32767 0 符号付整数 int 4bytes -2147483648~+2147483647 0 符号付整数 long 8bytes -9223372036854775808~+9223372036854775807 0L 浮動小数点数 float 4bytes 約±3.40282347e+38の範囲(精度は6桁) 0.0F 浮動小数点数 double 8bytes 約±1.79769313486231570e+308の範囲(精度は15桁) 0.0 文字 char 2bytes \u0000 ~ \uFFFF \u0000 真偽値 boolean 1bit trueまたはfalse false 上記の8種類の事を基本データ型(プリミティブ型)と言う。 ミニ知識 JAVAは色々な種類のデータを扱うことができ、分類を分けると 基本データ型:符号付整数、浮動小数点数、文字、真偽等があります。 参照型:配列、列挙、クラス、インターフェース等があります。 に分かれる。 byteやshortは使い道が。。。 基本的に整数で使われるのは「int」浮動小数点なら「double」だと思います。 charの使い方としては。 1.class Test{ 2.public static void main(String[] args){ 3.char i = a ; //charは文字型なので ←シングルクォーテーションを付けましょう。 4.System.out.println("i = "i); //2行目で 宣言したiを表示。 5.} 6.} 3行目の「char i = a ;」は charは2バイト文字なので一応「char i = あ ;」と書くことも可能です。 ここでUNICODE最高と思う人もいるかも?(´・ω・`) ただ、JAVAの場合はきちんとした文字列を使用するものがあります!これはステキ。。。。 その名も「String」。まぁ・・・使って説明を(ノ´∀`*) 1.class Test{ 2.public static void main(String[] args){ 3.String i = "String最高"; //Stringは""←ダブルクォーテーションを付けましょう。 4.System.out.println("i = "i); //2行目で 宣言したiを表示。 5.} 6.} コンパイル等してお試しください。
https://w.atwiki.jp/mojukuudon/pages/38.html
何故かって? Cで書くより楽そうだからさ。 ITドカタ経験者なら分かるはず、作っておけば楽できる。 public class main { public static void main(String[] args) { System.out.println("Hello World!!"); System.out.println(args[0]); System.exit(1); } } これでJAVAマスター 開発予定 機能 チャットをまず作る。それを作るには暗号と通信をきっちりしないと。頭の中はこんな感じ。 (未着手) 見た目 3D空間に絵を張った画用紙を置いてかっこよく、なんて事はせずスプライトくらいにしておく。 (未着手) 暗号部分 どうしたいか、実現可能かはOKっぽい。頭の中はこんな感じ。 (後2つ適当な暗号式を作る) 通信部分 中央集積型でなくとも、実現可能っぽい。頭の中はこんな感じ。 (大量データ送受用に信用度の高いハッシュ求める関数と、それを通信部に組み込まないといけないと思う) HTTP部分 自身のIP取得や接続相手探索のため外部サービスを利用する必要がある。 (atwikiクッキー対応完了。暗号部完了と同時に完) その他 ・大人の事情で時間がないのでJAVA使う。頭の中はこんな感じ。 (完) ・大人の事情で資料はソース。頭の中はこんな感じ。 (気が向いたら書く) ・大人の事情で予定は未定の小学生の宿題です。 (先生のいないフリーダム学校です) 初めまして、もずくです -- もずく (2011-09-24 13 43 37) 名前 コメント
https://w.atwiki.jp/java_pro/pages/53.html
抽象クラスを実習してみましょう。 ペットクラス-Pet.java 犬クラス-Dog.java 猫クラス-Cat.java 実行するクラス-Test01_30.java
https://w.atwiki.jp/suffix/pages/147.html
Java出力の図ですでに示した通り、Javaの入力はInputStreamクラス系とWriterクラス系に大きく 二分されていることが分かる。これらをそれぞれバイトストリームと文字ストリームと呼ぶ。 こういったクラスで文字を読み込むときには大抵write(),flush(),close()といった関数が用意されている。 以下主要なものの説明。 OutputStream バイト出力ストリームを扱うクラス。 FileOutputStream ファイルにデータを書き込む。 FileOutputStream fo = new FileOutputStream("sample.txt"); //引数に関してはFileクラスのオブジェクトとかでもOK。詳細はAPIで。 Writer 文字ストリームに書き込む抽象クラス。 サブクラスで、write(char[], int, int)、flush()、close()を実装する必要あり。 OutputStreamWriter バイトストリームから文字ストリームの橋渡しを行う。 OutputStreamWriter = new OutputStreamWriter(bytestream, encoding); 以下のようにBufferedWriterでラップさせて使うことが多い。 BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out)); BufferedWriter 文字、配列、文字列をバッファすることで効率よく書き込む。 PrintWriter テキスト出力ストリームに出力する。 FileWriter 文字ファイルを書き込むためのクラス。 FileWriter writer = new FileWriter("sample.txt"); これも以下のようにBufferedWriterでラップさせて使うことが多い。PrintWriterのファイルへの出力の例である。 PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(filename)));
https://w.atwiki.jp/api_programming/pages/111.html
参考サイト Swingを使ってみよう - JavaDrive Swing - とほほのJava入門 下位ページ Content イベント処理の流れと実装 イベント処理部品と処理先のひも付け イベント処理の方法 レイアウト ダイアログを簡単に表示する イベント処理の流れと実装 流れ ボタンが押される イベントが発行される イベントを受け取るボタン側にaddActionListenerメソッドを実行(処理する「クラス」を登録する) 登録するクラスは、ActionListerクラスをインプリメント登録するクラスの中で、actionPerformedメソッドを実装 処理を実行する イベント処理 http //www.javadrive.jp/tutorial/event/index1.html https //docs.oracle.com/javase/jp/6/api/java/awt/event/ActionEvent.html 部品と処理先のひも付け addActionListerで処理するクラスを登録する登録するクラスはActionListenerクラスをimplementsしていること 登録するクラスはactionPerformedメソッドを実装していること イベント処理の方法 ActionListenerをimplementsしたクラスで、actionPerformedをオーバーライドする。 actionPerformed(ActionEvent e) 複数のボタンなどの部品に対して、一つのクラスでイベント処理をする場合には、どの部品から呼びだされたイベントかを識別する方法について処理する方法を記述する必要がある。 String str = actionevent.getActionCommand(); レイアウト レイアウトマネージャーの設定 - JavaDrive http //www.ne.jp/asahi/hishidama/home/tech/java/swing/layout.html ダイアログを簡単に表示する JOptionPane JOptionPane static で shorMessageDialogというものが準備されている
https://w.atwiki.jp/suffix/pages/145.html
Java入力の図ですでに示した通り、Javaの入力はInputStreamクラス系とReaderクラス系に大きく 二分されていることが分かる。これらをそれぞれバイトストリームと文字ストリームと呼ぶ。 こういったクラスで文字を読み込むときには大抵read(),close()といった関数が用意されている。 以下主要なものの説明。 InputStream バイト入力ストリームを扱うクラス。 FileInputStream ファイルから入力バイトを取得する。 File fileName = new File("sample.txt") FileInputStream filereader = new FileInputStream(file); //ファイル名を直接引数としても良い。 byte[] b = new byte[(int)fileName.length()]; file.read(b); String str = new String(b,"UTF-8"); Reader 文字ストリームを読み込む抽象クラス。 サブクラスでread(char[], int, int) と close()を実装する必要あり。 InputStreamReader バイト入力ストリームから文字入力ストリームの橋渡しを行う。 InputStreamReader reader = new InputStreamReader(bytestream, encoding); 以下のようにBufferedReaderでラップさせて使うことが多い。 BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); BufferedReader 文字、配列、行をバッファする。read()やreadLine()呼び出しごとに読み込み変換を行わず、効率よく 変換を行うために使う。 FileReader 文字ファイルから読み込みを行うためのクラス。 FileReader reader = new FileReader("sample.txt"); これも以下のようにBufferedReaderでラップさせて使うことが多い。 BufferedReader reader = new BufferedReader(new FileReader(filename));
https://w.atwiki.jp/xronia/pages/23.html
サンプルコードはいろいろあるが せっかく3Dなのに視点も変えられないものばかり とりあえずはマウスでゴリゴリ動かせるようにしないと3Dの面白さはないでしょう。 自然にくるくる回るってのもあるが、やっぱ拡大縮小して欲しい。 てなわけでマウスで動くようにしたい! いじるのは、Canvas3D。こいつを継承してマウスのイベントを足してしまえばできるっぽい。 ちなみに、ここでのマウスでゴリゴリの仕様は 右ドラッグ:回転 左ドラッグ:視点移動 マウスホイール:拡大・縮小 結構贅沢な仕様である。 そしてできたソースがこれ。 package jp.xronia.j3d; //******************************************************************************//マウスのドラッグで視点移動を行うCanvas3D拡張クラス“Canvas3DMouseMove”////Canvas3Dを継承//MouseMotionLisenerを実装////コンストラクタの引数はカメラの距離//さらに,コンストラクタの引数にはGraphicsConfigurationが必要(Canvas3Dと同じ仕様)//****************************************************************************** import java.awt.Dimension;import java.awt.GraphicsConfiguration;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.awt.event.MouseMotionAdapter;import java.awt.event.MouseWheelEvent;import java.awt.event.MouseWheelListener; import javax.media.j3d.Canvas3D;import javax.media.j3d.Transform3D;import javax.media.j3d.TransformGroup;import javax.vecmath.Vector3f; import com.sun.j3d.utils.universe.SimpleUniverse;import com.sun.j3d.utils.universe.ViewingPlatform; public class Canvas3DMouseMove extends Canvas3D {/** SerialVersionUID */private static final long serialVersionUID = 1L; //=============================================================================//クラスのフィールド //動径の長さ(座標中心と視点との距離)float camera_distance; // マウスの座標なんかを保存するオブジェクトMouseEntity mouse = new MouseEntity(); //SimpleUniverseをフィールドとしてもっておく。SimpleUniverse universe; //視点の座標変換のためのグループTransformGroup camera; //=============================================================================//コンストラクタpublic Canvas3DMouseMove(float Distance, GraphicsConfiguration config) {//親クラスのコンストラクタを呼ぶ. 引数はGraphicsConfiuration.super(config); //カメラの原点からの距離を設定camera_distance = Distance; //空のSimpleUniverseを生成universe = new SimpleUniverse(this); //============================================================================//視点(カメラ)について設定//============================================================================ //------------------------------------------------------------------//カメラ全般の初期設定 //SimpleUniverseが生成したViewingPlatformを取得ViewingPlatform vp = universe.getViewingPlatform(); //ViewingPlatformの座標変換グループとして,“Camera”を割り当てるcamera = vp.getViewPlatformTransform(); //以上の設定をカメラに反映distance();//============================================================================//マウスの設定//============================================================================// マウスクリックイベント登録addMouseListener(new MouseAdapter() {@Overridepublic void mousePressed(MouseEvent e) {mouse.setMouseButton(e.getButton());mouse.setPrevMouseX(e.getX());mouse.setPrevMouseY(e.getY()); }});// マウスホイールイベント登録addMouseWheelListener(new MouseWheelListener() {@Overridepublic void mouseWheelMoved(MouseWheelEvent e) {mouse.setScale(mouse.getScale() * (e.getWheelRotation() 0 ? 1.25f 1f / 1.25f)); distance();}}); // マウスドラックイベント登録addMouseMotionListener(new MouseMotionAdapter() {@Overridepublic void mouseDragged(MouseEvent e) {Dimension size = e.getComponent().getSize();float dx = (float)(e.getX() - mouse.getPrevMouseX()) / size.width;float dy = (float)(mouse.getPrevMouseY() - e.getY()) / size.height; if (mouse.getMouseButton() == MouseEvent.BUTTON1) {// 移動量の更新mouse.setDistanceX(mouse.getDistanceX() + dx * 30f);mouse.setDistanceY(mouse.getDistanceY() + dy * 30f);} else {// 角度の更新 (ウィンドウの端から端までで、360度回転するようにする)mouse.setAngleX(mouse.getAngleX() - dy * 360.0f);mouse.setAngleY(mouse.getAngleY() + dx * 360.0f);} // 現在のマウスの位置を保存mouse.setPrevMouseX(e.getX());mouse.setPrevMouseY(e.getY()); distance();} });} //============================================================================//マウスがドラッグ時に呼ぶメソッド//============================================================================public void distance() {//===========================================================================//極座標を直交座標へ直す//===========================================================================//theta関係の計算(球座標→直交座標)float camera_y = camera_distance * (float)Math.sin(Math.toRadians(mouse.getAngleX())) *mouse.getScale();float camera_xz = camera_distance * (float)Math.cos(Math.toRadians(mouse.getAngleX())) *mouse.getScale(); //phi関係の計算(球座標→直交座標)float camera_x = camera_xz * (float)Math.sin(Math.toRadians(mouse.getAngleY()));float camera_z = camera_xz * (float)Math.cos(Math.toRadians(mouse.getAngleY()));//3次元ベクトル(カメラの位置用)Vector3f Vector_camera_pos = new Vector3f(camera_x, camera_y, camera_z);Vector3f vector_distance = new Vector3f(-mouse.getDistanceX(), -mouse.getDistanceY(), 0);//===========================================================================Transform3D Transform_camera_pos = new Transform3D();//カメラの位置//平行移動の座標変換を用意Transform_camera_pos.setTranslation(Vector_camera_pos); Transform3D Transform_camera_pos2 = new Transform3D();//カメラの位置Transform_camera_pos2.setTranslation(vector_distance);//===========================================================================//カメラの座標変換実行//===========================================================================Transform3D Transform_camera_theta = new Transform3D();//thetaに関する回転Transform_camera_theta.rotX(-Math.toRadians(mouse.getAngleX())); Transform3D Transform_camera_phi = new Transform3D();//phiに関する回転Transform_camera_phi.rotY(Math.toRadians(mouse.getAngleY())); //合成するTransform_camera_phi.mul(Transform_camera_theta);Transform_camera_pos.mul(Transform_camera_phi);Transform_camera_pos.mul(Transform_camera_pos2); //座標変換実行camera.setTransform(Transform_camera_pos);}//*****************************************************************************} まああれだ、どこのサイトだか忘れたがほぼパクリ。 おっとパクリ元発見→http //www.maroon.dti.ne.jp/koten-kairo/works/Java3D/Java3D_start.html#mouse なので、左ドラッグの移動とホイールの拡大縮小は完全にオレ仕様であるが、そこはそれということで、 見える!オレにも見える!くく〜(おま package jp.xronia.j3d; public class MouseEntity { private int prevMouseX = 0; private int prevMouseY = 0; private float angleX = 0.0f; private float angleY = 0.0f; private float distanceX = 0.0f; private float distanceY = 0.0f; private int mouseButton = 0; private float scale = 1.0f; public float getScale() {return scale;}public void setScale(float scale) {this.scale = scale;}public int getMouseButton() {return mouseButton;}public void setMouseButton(int mouseButton) {this.mouseButton = mouseButton;}public int getPrevMouseX() {return prevMouseX;}public void setPrevMouseX(int prevMouseX) {this.prevMouseX = prevMouseX;}public int getPrevMouseY() {return prevMouseY;}public void setPrevMouseY(int prevMouseY) {this.prevMouseY = prevMouseY;}public float getAngleX() {return angleX;}public void setAngleX(float angleX) {this.angleX = angleX;}public float getAngleY() {return angleY;}public void setAngleY(float angleY) {this.angleY = angleY;}public float getDistanceX() {return distanceX;}public void setDistanceX(float distanceX) {this.distanceX = distanceX;}public float getDistanceY() {return distanceY;}public void setDistanceY(float distanceY) {this.distanceY = distanceY;}@Overridepublic String toString() {return "MouseEntity [prevMouseX=" + prevMouseX + ", prevMouseY="+ prevMouseY + ", angleX=" + angleX + ", angleY=" + angleY+ ", distanceX=" + distanceX + ", distanceY=" + distanceY+ ", mouseButton=" + mouseButton + ", scale=" + scale + "]";}} おっと、追加したMouse用のエンティティを掲載するのを忘れるところだったぜ で、使い方。 package jp.xronia.j3d; import java.awt.GraphicsConfiguration; import javax.media.j3d.BoundingSphere;import javax.media.j3d.BranchGroup;import javax.media.j3d.DirectionalLight;import javax.media.j3d.TransformGroup;import javax.swing.JFrame;import javax.swing.JPanel;import javax.vecmath.Color3f;import javax.vecmath.Point3d;import javax.vecmath.Vector3f; import com.sun.j3d.utils.geometry.ColorCube;import com.sun.j3d.utils.universe.SimpleUniverse; public class Test extends JFrame {/** SerialVersionUID */private static final long serialVersionUID = 1L; public Test() {//============================================================================//まずは、基礎フレームの設定。//============================================================================//ウィンドウのサイズ設定this.setSize(400,400);//ウィンドウのタイトル設定this.setTitle("ViewChange_test");//ウィンドウを閉じる動作の登録this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//コンテントペインを作成JPanel cp = new JPanel();//コンテントペイン上のレイアウトは全て手動で行うcp.setLayout(null);//フレームに、コンテントペインを登録this.add(cp); //============================================================================//次にJava3D関係の設定。//============================================================================//現在使用している画面の、ハードウェア情報を取得するGraphicsConfiguration g_config = SimpleUniverse.getPreferredConfiguration();//Cnavas3D_ViewChangeクラスを用意する(距離は40, マウス感度は0.03)Canvas3DMouseMove canvas = new Canvas3DMouseMove(10.0f, g_config);//3D表示領域の大きさを設定。今回はウィンドウいっぱいに表示するcanvas.setBounds(0,0,400,400);//コンテントペインにCanvas3Dを登録cp.add(canvas); //Canvas3DクラスのSimpleUniverseを利用。SimpleUniverse universe = canvas.universe;//universe.getViewingPlatform().setNominalViewingTransform(); //============================================================================//ライトの設定//============================================================================//ライトの強さ及び色Color3f light_color = new Color3f(3.4f, 3.4f, 3.4f);//ライトの方向Vector3f light_direction = new Vector3f(-0.8f, -1.2f, -1.0f);//平行光源を用意DirectionalLight light = new DirectionalLight(light_color,light_direction);//ライトで照らす範囲(球範囲で指定,中心座標とその半径)BoundingSphere bounds = new BoundingSphere(new Point3d(), 100.0);//範囲を登録light.setInfluencingBounds(bounds);//ライト用の「枝」を作るBranchGroup BranchGroup_Light = new BranchGroup();//「枝」にライトを登録BranchGroup_Light.addChild(light);//仮想空間に「枝」を登録universe.addBranchGraph(BranchGroup_Light); //============================================================================//3D空間を構築していきます//============================================================================ BranchGroup bg = new BranchGroup();//「カラーキューブ」を1つ生成ColorCube cube = new ColorCube(1.0f); //座標変換クラスを生成TransformGroup tfg = new TransformGroup(); //座標変換の書き換えを許可tfg.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); //カラーキューブを座標変換クラスに登録tfg.addChild(cube); bg.addChild(tfg); universe.addBranchGraph(bg); //ウィンドウを可視化this.setVisible(true);}//============================================================================// メイン//============================================================================public static void main(String args[]) {new Test();}} ここではおざなりにカラーキューブを表示させているが、見てみたいサンプルをブランチグループに登録してあげれば 大抵のサンプルはマウスでグリグリできるようになるはず。
https://w.atwiki.jp/greenday/pages/16.html
Eclipseは、Javaを始めとするさまざまな言語のプログラミングを効率良く進めるための統合開発環境。 豊富なプラグインによりさまざまな機能拡張ができるのが特徴。 Javaプログラミングを始めよう
https://w.atwiki.jp/ce00582/pages/1253.html
import java.awt.RenderingHints; import java.awt.geom.*; import java.awt.Color; import java.awt.BasicStroke; public class tax31 extends JPanel{ public static void main(String[] args){ JFrame frame = new JFrame(); tax31 app = new tax31(); frame.getContentPane().add(app); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setBounds(0, 0, 500, 500); frame.setTitle("Mirrlees(1971)の追試"); frame.setVisible(true); } public void paintComponent(Graphics g){ int n; double data[]=new double[201]; Graphics2D g2 = (Graphics2D)g; g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); data=tax(); for (n=1;n 99;n++){ g2.draw(new Line2D.Double(500*data[n+100], 500-500*data[n], 500*data[n+101],500-500*data[n+1])); } } static double[] tax(){ double th[]= new double[101]; double c[]= new double[101]; double y[]= new double[101]; int opc[]= new int[101]; int opy[]= new int[101]; int opq[]= new int[101]; double u[][][]=new double[101][3][3]; double ww[][][]=new double[100][3][3]; double v[][][][]=new double[100][3][3][21]; int gotoc[][][][]=new int[100][3][3][21]; int gotoy[][][][]=new int[100][3][3][21]; int gotoq[][][][]=new int[100][3][3][21]; double endv[][]=new double[3][3]; int endc[][]=new int[3][3]; int endy[][]=new int[3][3]; int endq[][]=new int[3][3]; int s; double ls; double w; double cs; double ys; double b1; double b2; double wel; double maxwel; int t; int n; int n1; int n2; int pp; int q; int j; double c1; double l1; double h; double u1; int ns1; int ns2; int qx; int nx1; int nx2; double vs; double v1; double maxv; double dc; double dy; int e; double data1[]=new double[101]; double data2[]=new double[201]; double data3[]=new double[201]; double maxy; data1=ex1(); data2=ex2(); for (s=1;s 101;s++){ c[s]=data2[s]; y[s]=data2[s+100]; } for (s=1;s 101;s++){ th[s]=data1[s]; } h=0.001; t=0; while(t 1000){ for (s=1;s 101;s++){ for (n1=-1;n1 2;n1++){ for (n2=-1;n2 2;n2++){ c1=c[s]+n1*h; l1=(y[s]+n2*h)/th[s]; u1=ux(c1,l1); u[s][n1+1][n2+1]=u1; } } } for (s=1;s 100;s++){ for (n1=-1;n1 2;n1++){ for (n2=-1;n2 2;n2++){ c1=c[s]+n1*h; l1=(y[s]+n2*h)/th[s+1]; u1=ux(c1,l1); ww[s][n1+1][n2+1]=u1; } } } for (n1=-1;n1 2;n1++){ for (n2=-1;n2 2;n2++){ for (q=-10;q 11;q++){ v[1][n1+1][n2+1][q+10]=-999; } } } for (n1=-1;n1 2;n1++){ for (n2=-1;n2 2;n2++){ q=n2-n1; v[1][n1+1][n2+1][q+10]=u[1][n1+1][n2+1]; } } for (s=2;s 100;s++){ for (n1=-1;n1 2;n1++){ for (n2=-1;n2 2;n2++){ for (q=-10;q 11;q++){ u1=u[s][n1+1][n2+1]; qx=q-n1+n2; pp=0; if (qx 10)pp=100; if (qx -10)pp=100; if (pp 50)qx=0; vs=-999; ns1=0; ns2=0; for (nx1=-1;nx1 2;nx1++){ for (nx2=-1;nx2 2;nx2++){ v1=u1+v[s-1][nx1+1][nx2+1][qx+10]; if (ww[s-1][nx1+1][nx2+1] u1)v1=-999; if (v1 vs)ns1=nx1; if (v1 vs)ns2=nx2; if (v1 vs)vs=v1; } } if (pp 50)vs=-999; gotoc[s][n1+1][n2+1][q+10]=ns1; gotoy[s][n1+1][n2+1][q+10]=ns2; gotoq[s][n1+1][n2+1][q+10]=qx; v[s][n1+1][n2+1][q+10]=vs; } } } } for (n1=-1;n1 2;n1++){ for (n2=-1;n2 2;n2++){ u1=u[100][n1+1][n2+1]; qx=n2-n1; vs=-999; ns1=0; ns2=0; for (nx1=-1;nx1 2;nx1++){ for (nx2=-1;nx2 2;nx2++){ v1=u1+v[99][nx1+1][nx2+1][qx+10]; if (ww[99][nx1+1][nx2+1] u1){ v1=-999; } if (v1 vs){ ns1=nx1; } if (v1 vs){ ns2=nx2; } if (v1 vs){ vs=v1; } } } endc[n1+1][n2+1]=ns1; endy[n1+1][n2+1]=ns2; endq[n1+1][n2+1]=qx; endv[n1+1][n2+1]=vs; } } maxv=-999; ns1=0; ns2=0; for (n1=-1;n1 2;n1++){ for (n2=-1;n2 2;n2++){ if (endv[n1+1][n2+1] maxv){ ns1=n1; } if (endv[n1+1][n2+1] maxv){ ns2=n2; } if (endv[n1+1][n2+1] maxv){ maxv=endv[n1+1][n2+1]; } } } opc[100]=ns1; opy[100]=ns2; opc[99]=endc[opc[100]+1][opy[100]+1]; opy[99]=endy[opc[100]+1][opy[100]+1]; opq[99]=endq[opc[100]+1][opy[100]+1]; for (j=1;j 99;j++){ s=99-j; opc[s]=gotoc[s+1][opc[s+1]+1][opy[s+1]+1][opq[s+1]+10]; opy[s]=gotoy[s+1][opc[s+1]+1][opy[s+1]+1][opq[s+1]+10]; opq[s]=gotoq[s+1][opc[s+1]+1][opy[s+1]+1][opq[s+1]+10]; } e=0; for (s=1;s 101;s++){ e=e+opc[s]*opc[s]+opy[s]*opy[s]; } for (s=1;s 101;s++){ c[s]=c[s]+opc[s]*h; y[s]=y[s]+opy[s]*h; } System.out.println(e); if (e 2){ h=h/2; } if (h 0.00001){ t=10000; } t=t+1; } maxy=-999; for (s=1;s 101;s++){ if (y[s] maxy)maxy=y[s]; } for (s=1;s 99;s++){ dc=c[s+1]-c[s]; dy=y[s+1]-y[s]; data3[s]=0; if (dy 0)data3[s]=1-dc/dy; } for (s=1;s 100;s++){ data3[s+100]=y[s]/maxy; } return data3; } static double[] ex2(){ double th[]= new double[101]; int s; double tl; double tr; double ls; double w; double cs; double ys; double b1; double b2; double tr1; double tr2; double tr3; double wel; double maxwel; double maxtl; double maxtr; int t; int n; double h; double c[]= new double[101]; double y[]= new double[101]; double data1[]=new double[101]; double data[]=new double[201]; int n1; int n2; data1=ex1(); for (s=1;s 101;s++){ th[s]=data1[s]; } maxwel=-999; maxtr=0; maxtl=0; for (n=20;n 45;n++){ tl=0.01*n; tr1=0.01; tr2=0.02; tr=tr1; b1=bud(tl,tr1,th); t=0; while (t 100) { b2=bud(tl,tr2,th); tr3=tr2-b2*(tr2-tr1)/(b2-b1); tr1=tr2; tr2=tr3; b1=b2; if (b2*b2 0.00001)t=1000; t=t+1; } tr=tr2; wel=seekwel(tl,tr,th); if (wel maxwel)maxtl=tl; if (wel maxwel)maxtr=tr; if (wel maxwel)maxwel=wel; } tl=maxtl; tr=maxtr; for (s=1;s 101;s++){ w=(1-tl)*th[s]; ls=(w-tr)/(2*w); if (ls 0)ls=0; c[s]=w*ls+tr; y[s]=th[s]*ls; } for (s=1;s 101;s++){ data[s]=c[s]; data[s+100]=y[s]; } return data; } static double ux(double c1,double l1){ double u1; double c3; double l3; int pp; pp=0; c3=c1; l3=l1; if (c3 0)pp=100; if (l3 0)pp=100; if (l3 1)pp=100; if (pp 50)c3=0.5; if (pp 50)l3=0.5; u1=Math.log(c3)+Math.log(1-l3); if (pp 50)u1=-999; return u1; } static double bud(double tl,double tr,double th[]){ double bx; int s; double w; double y1; double c1; double l1; bx=0; for (s=1;s 101;s++){ w=(1-tl)*th[s]; l1=(w-tr)/(2*w); if (l1 0)l1=0; y1=th[s]*l1; c1=w*l1+tr; bx=bx+y1-c1; } return bx; } static double seekwel(double tl,double tr,double th[]){ double sw; int s; double w; double l1; double c1; sw=0; for (s=1;s 101;s++){ w=(1-tl)*th[s]; l1=(w-tr)/(2*w); if (l1 0)l1=0; c1=w*l1+tr; sw=sw+ux(c1,l1); } return sw; } static double[] ex1(){ double p; double mu; double sig; double yy; double th[]= new double[101]; int s; mu=0; sig=0.39; for (s=1;s 101;s++){ p=0.01*s-0.005; yy=seeky(p,mu,sig); th[s]=Math.exp(yy); } return th; } static double f(double x,double mu,double sig){ double pi,x1,x2,x3,fx; pi = 3.1415; x1=-Math.pow(x - mu,2) / (2*Math.pow(sig,2)); x2=Math.exp(x1); x3=sig*Math.pow(2*pi,0.5); fx=x2/x3; return fx; } static double g(double y,double mu, double sig){ double gx,h,x; int n,t; gx=0; h=0.001; t=(int)(y/h); for (n=-2000;n t;n++){ x=n*h; gx=gx+f(x,mu,sig)*h; } return gx; } static double seeky(double p,double mu,double sig){ double g1,g2,y1,y2,y3; int t; y1=0.4; y2=-0.2; g1=g(y1,mu,sig); t=0; while(t 100){ g2=g(y2,mu,sig); y3=y2+(p-g2)*(y2-y1)/(g2-g1); y1=y2; y2=y3; g1=g2; if (Math.pow(p-g2,2) 0.0001)t=1000; t=t+1; } return y2; } }
https://w.atwiki.jp/m_shige1979/pages/1241.html
正規表現 パターンマッチ import java.io.*;import java.util.regex.*; class sample03{ public static void main(String[] args){ try{ InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr); System.out.print("文字列="); String b1 = br.readLine(); System.out.print("マッチ="); String b2 = br.readLine(); Pattern pattern; Matcher matcher; // パターンマッチ pattern = Pattern.compile(b2); matcher = pattern.matcher(b1); boolean c = matcher.matches(); System.out.println(c); }catch(Exception ex){ ex.printStackTrace(); } }} 分割 置換